向现有原则模型添加新列



首先,感谢StackOverflow的优质服务,感谢你们花时间回答我们的问题。

我正在使用 Doctrine ORM 1.2.4 和 CodeIgniter 1.7.3。我创建了一个包含一些所需表的网站,并输入了数据,只是为了在以后的时间点意识到特定表需要再有一列。

我创建表的方式是将模型编写为扩展Doctrine_Record的 php 类。

现在我想知道我是否需要在模型中添加需要在 setTableDefinition() 方法中创建新列的列并重新创建该表,或者是否有任何其他方法可以轻松做到这一点。我提到的前一种方法要求我删除当前表和数据并重新创建我不希望的表。由于 doctrine 似乎是一个非常好的架构师编辑的数据库框架,我相信它缺乏我的知识,但肯定应该存在一种轻松添加新列的方法。

PS:我不是要更改与其他表有关系的列,而只是添加一个与任何其他表无关的新列。此外,我使用Doctrine::createTablesFromModels()在数据库中创建表;当我使用新列更改表并运行此方法时,它会显示错误。

由于您不想删除和重新创建,请使用 Doctrine 迁移。

这里的官方文档展示了许多示例:

http://www.doctrine-project.org/projects/orm/1.2/docs/manual/migrations/en

由于您只想添加一个字段,请查看他们的第二个代码示例,因为它是最相关的,如下所示:

// migrations/2_add_column.php
class AddColumn extends Doctrine_Migration_Base
{
    public function up()
    {
        $this->addColumn('migration_test', 'field2', 'string');
    }
    public function down()
    {
        $this->removeColumn('migration_test', 'field2');
    }
}

最新更新