Select 在 Symfony2 中创建 table 之前的数据库架构
Select DB Schema before creating table in Symfony2
在我的项目中,我必须分离数据库,我是这样设置的:
// app/config/parameters.yml
parameters:
#base
database_host: 127.0.0.1
database_port: null
database_name: nm_admin
database_user: nm_admin
database_password: 'nm_admin'
#user1
database_host_user1: 127.0.0.1
database_port_user1: null
database_name_user1: nm_user1
database_user_user1: nm_user1
database_password_user1: 'nm_user1'
// app/config/config.yaml
doctrine:
dbal:
default_connection: default
connections:
#default
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
#user1
user1:
driver: pdo_mysql
host: "%database_host_user1%"
port: "%database_port_user1%"
dbname: "%database_name_user1%"
user: "%database_user_user1%"
password: "%database_password_user1%"
charset: UTF8
orm:
default_entity_manager: default
entity_managers:
#default
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: false
connection: default
mappings:
AppBundle: ~
#user1
user1:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: false
connection: user1
mappings:
AppBundle: ~
现在,当我为数据库创建一个实体时,就像这样
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Table(name="app_clients")
* @ORM\HasLifecycleCallbacks
* @ORM\Entity(repositoryClass="AppBundle\Entity\ClientRepository")
*/
class Client
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
protected $mailbox;
}
with php app/console doctrine:schema:update --force
它总是将它放入 nm_admin 数据库(默认数据库)。
Doctrine 的文档没有说明选择模式,here 但有办法吗?我希望某些实体属于 nm_user,而某些实体属于 nm_admin,我该如何定义?
尝试通过这种方式更新第二个数据库:
php app/console doctrine:schema:update --force --em=user1
并查看:http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html
在我的项目中,我必须分离数据库,我是这样设置的:
// app/config/parameters.yml
parameters:
#base
database_host: 127.0.0.1
database_port: null
database_name: nm_admin
database_user: nm_admin
database_password: 'nm_admin'
#user1
database_host_user1: 127.0.0.1
database_port_user1: null
database_name_user1: nm_user1
database_user_user1: nm_user1
database_password_user1: 'nm_user1'
// app/config/config.yaml
doctrine:
dbal:
default_connection: default
connections:
#default
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
#user1
user1:
driver: pdo_mysql
host: "%database_host_user1%"
port: "%database_port_user1%"
dbname: "%database_name_user1%"
user: "%database_user_user1%"
password: "%database_password_user1%"
charset: UTF8
orm:
default_entity_manager: default
entity_managers:
#default
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: false
connection: default
mappings:
AppBundle: ~
#user1
user1:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: false
connection: user1
mappings:
AppBundle: ~
现在,当我为数据库创建一个实体时,就像这样
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Table(name="app_clients")
* @ORM\HasLifecycleCallbacks
* @ORM\Entity(repositoryClass="AppBundle\Entity\ClientRepository")
*/
class Client
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
protected $mailbox;
}
with php app/console doctrine:schema:update --force
它总是将它放入 nm_admin 数据库(默认数据库)。
Doctrine 的文档没有说明选择模式,here 但有办法吗?我希望某些实体属于 nm_user,而某些实体属于 nm_admin,我该如何定义?
尝试通过这种方式更新第二个数据库:
php app/console doctrine:schema:update --force --em=user1
并查看:http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html