【问题标题】:Adding new columns to an Existing Doctrine Model向现有 Doctrine 模型添加新列
【发布时间】:2011-05-09 06:41:17
【问题描述】:

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

我正在使用 Doctrine ORM 1.2.4 和 CodeIgniter 1.7.3。我创建了一个包含一些必需表的站点并输入了数据,但后来才意识到特定表需要多一列。

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

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

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

【问题讨论】:

    标签: codeigniter doctrine new-operator add


    【解决方案1】:

    由于您不想放弃并重新创建,请使用 Doctrine Migration。

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

    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');
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 2013-03-30
      • 2014-09-21
      • 2015-11-23
      • 2016-01-12
      • 2011-05-19
      • 1970-01-01
      相关资源
      最近更新 更多