IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Comment utiliser plusieures bases de données? [2.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Points : 27
    Points
    27
    Par défaut Comment utiliser plusieures bases de données?
    Bonjour,

    Dans mon symfony j'ai plusieurs projets dans mon dossier src:
    - Projet1/MainBundle
    - Projet1/UserBundle
    - Intranet/MainBundle
    - Intranet/UserBundle


    Je souhaiterais utilisé une base de donnée pour mon projet1 et une autre pour mon projet2.

    J'ai donc testé cette méthode:
    http://www.dinduks.com/symfony2-util...es-de-donnees/



    Mais ma base intranet n'est pas prise en compte.
    Lorsque je lance "php app/console doctrine:schema:update --force" dans ma console, la base intranet n'a aucune table de crée.
    Ca met bien à jour la base projet1 par contre.


    Sauriez vous d'ou vient le problème?

    Voici ce que j'ai modifié:
    app/config/config.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    imports:
        - { resource: parameters.yml }
        - { resource: security.yml }
     
    framework:
        #esi:             ~
        translator:      { fallback: %locale% }
        secret:          %secret%
        router:
            resource: "%kernel.root_dir%/config/routing.yml"
            strict_requirements: %kernel.debug%
        form:            ~
        csrf_protection: ~
        validation:      { enable_annotations: true }
        templating:
            engines: ['twig']
            #assets_version: SomeVersionScheme
        default_locale:  "%locale%"
        trusted_proxies: ~
        session:         ~
        fragments:       ~
     
    # Twig Configuration
    twig:
        debug:            %kernel.debug%
        strict_variables: %kernel.debug%
     
    # Assetic Configuration
    assetic:
        debug:          %kernel.debug%
        use_controller: false
        bundles:        [ ]
        #java: /usr/bin/java
        filters:
            cssrewrite: ~
            #closure:
            #    jar: %kernel.root_dir%/Resources/java/compiler.jar
            #yui_css:
            #    jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
     
    # Doctrine Configuration
    doctrine:
        dbal:
            default_connection: projet1 # précise la connexion utilisée par défaut
            connections:
              projet1:
                driver:   %database_driver%
                host:     %database_host%
                port:     %database_port%
                dbname:   %database_name%
                user:     %database_user%
                password: %database_password%
                charset:  UTF8
              intranet:
                driver:   %database_driver%
                host:     %database_host%
                port:     %database_port%
                dbname:   intranet
                user:     %database_user%
                password: %database_password%
                charset:  UTF8
            # if using pdo_sqlite as your database driver, add the path in parameters.yml
            # e.g. database_path: %kernel.root_dir%/data/data.db3
            # path:     %database_path%
     
        orm:
            #auto_generate_proxy_classes: %kernel.debug%
            #auto_mapping: true
            default_entity_manager: projet1 # précise l'em utilisé par défaut (lors de l'utilisation de la ligne de commande par exemple)
            entity_managers:
              projet1:
                connection: projet1
                mappings:
                  Projet1MainBundle : ~
                  Projet1UserBundle : ~
              intranet:
                connection: intranet
                mappings:
                  IntranetMainBundle : ~
     
    # Swiftmailer Configuration
    swiftmailer:
        transport: %mailer_transport%
        host:      %mailer_host%
        username:  %mailer_user%
        password:  %mailer_password%
        spool:     { type: memory }
     
    fos_user:
        db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
        firewall_name: main
        user_class: Projet1\UserBundle\Entity\User
     
    services:
        twig.extension.text:
           class: Twig_Extensions_Extension_Text
           tags:
               - { name: twig.extension }
    Auriez vous une idée de comment s'y prendre?


    Cordialement,

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,

    si tu lances:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php app/console doctrine:schema:update --help
    tu verras parmi les options disponibles l'option "em" qui permet de spécifier quelle connexion utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php app/console doctrine:schema:update --em=intranet --force

  3. #3
    Membre habitué Avatar de anta_res
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 93
    Points : 173
    Points
    173
    Par défaut
    Pour la petite explication quand tu utilise la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php app/console doctrine:schema:update --force
    sans l'option "em" il utilise ton Entity manager par defaut donc dans ton cas "projet1" et si tu regarde ta config ton bundle intranet n'est pas rattaché à "projet1"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     orm:
            #auto_generate_proxy_classes: %kernel.debug%
            #auto_mapping: true
            default_entity_manager: projet1 # précise l'em utilisé par défaut (lors de l'utilisation de la ligne de commande par exemple)
            entity_managers:
              projet1:
                connection: projet1
                mappings:
                  Projet1MainBundle : ~
                  Projet1UserBundle : ~
    donc pas de mise à jour pour la base "intranet"

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2013
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Merci de vos infos.

    En effet pour mettre à jour ma base intranet, j'était obligé de modifier l'entity manager par defaut dans le config.xml

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 20/04/2010, 15h58
  2. Comment utiliser une base de donnée en flash 8
    Par isamm2008 dans le forum Flash
    Réponses: 1
    Dernier message: 26/01/2010, 19h14
  3. [ZF 1.9] Utiliser plusieurs bases de données dans l'adapter
    Par Aure7780 dans le forum Zend_Db
    Réponses: 1
    Dernier message: 17/11/2009, 08h42
  4. Requête utilisant plusieurs bases de données
    Par GodGives dans le forum Langage SQL
    Réponses: 9
    Dernier message: 10/06/2008, 12h43
  5. Réponses: 11
    Dernier message: 16/12/2007, 00h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo