我使用Doctrine 1.2,想知道如何用它实现mysql表前缀。学说ORM - 前缀表
因此,例如我想我们的系统在相同的数据库上部署两次,第一个表可以前缀为“one_”,第二个可以前缀为“two_”。
任何人都知道如何做到这一点?我会想象它是一个配置设置,但我似乎无法找到它。
我使用Doctrine 1.2,想知道如何用它实现mysql表前缀。学说ORM - 前缀表
因此,例如我想我们的系统在相同的数据库上部署两次,第一个表可以前缀为“one_”,第二个可以前缀为“two_”。
任何人都知道如何做到这一点?我会想象它是一个配置设置,但我似乎无法找到它。
我还没有尝试过,但..从文档:
$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine_Core::ATTR_TBLNAME_FORMAT, 'one_%s');
或者,您也可以手动在您的YAML模式中定义一个表名:
Foo:
tableName: one_foo
columns:
# etc.
希望这有助于。
我只是想知道,虽然..这是非常实用的,因为大概你会重建模型,这将需要删除/创建/重建你的数据库,可能很多。这意味着你每次都会丢弃两组表。看起来比创建两个数据库更困难,并为Doctrine_Manager中的每个数据库定义一个连接。 – 2010-10-04 23:33:52
它的用例是只允许一个数据库的共享主机。另一个用例是CMS的演示安装,由于服务器权限的限制,不允许自动创建数据库。 – balupton 2010-10-05 08:24:47
嗨。对延迟感到抱歉。很公平。所以我想你可以做的是定义两个连接(使用相同的数据库凭证等),然后使用Doctrine_Manager按名称获取每个实例...然后为每个实例设置所需的表名格式,如上所述?没有时间检查它是否会立即飞行,但它应该可以工作。 – 2010-10-07 09:16:18
如果您有一个域的UML模型,您可以使用UML to Doctrine online service来生成对应的Doctrine脚本的不同版本,每个版本都有不同的表格前缀(选择前缀是您可以更改的配置选项之一作为生成过程的一部分)
你究竟想要做什么?使用原则在数据库中生成表格?生成两组模型? – BenV 2010-10-04 14:24:43
所以像wordpress一样,默认情况下它有数据库表前缀'wp_'。在教条中拥有这样的特性将允许我在se数据库中使用两个单独安装的相同代码/系统,而传统上每个安装需要一个数据库,而不是每个安装都有一个前缀。 – balupton 2010-10-04 14:32:31