【问题标题】:How to rollback migration in codeigniter?如何在codeigniter中回滚迁移?
【发布时间】:2017-09-03 17:57:11
【问题描述】:

我已经能够在 Codeigniter 中创建和运行迁移,但我无法回滚我的迁移。谁能帮助我如何在 codeigniter 中回滚迁移?

使用 Illuminate\Database\Capsule\Manager 作为 Capsule;

类 Migration_Create_language 扩展 CI_Migration {

public function up() {
    Capsule::schema()->create('languages', function($table){
        $table->increments('id');
        $table->string('name', 120);
        $table->string('country', 120);
        $table->string('country_code', 20);
        $table->enum('status', array('0','1'))->default('0');
        $table->timestamps();
    });
}

/*
* Sample function for rolling back the above action
*/
public function down()
{
    Capsule::schema()->drop('languages');
}

}

【问题讨论】:

标签: php codeigniter migration rollback


【解决方案1】:

您可以发布您的迁移代码吗?

每次迁移都有一个名为down的方法。这就是向下迁移时执行的操作。确保你有你的 sql 语句,例如,销毁一个表。然后,加载所需的迁移版本。

【讨论】:

  • 我已经在我的 down 函数中查询以回滚迁移。当我想回滚数据库时,我只是不知道如何执行它们。
  • 你需要做:$this->migration->version(x); 当 x 是你要迁移的数量时。 Codeigniter 会了解您是否要关闭,因为它会将您当前的迁移版本保存在您的数据库中。
  • 好的。谢谢,马蒂亚斯。有没有更简单的方法告诉它只回滚最后一个版本?
  • 不客气。我不这么认为。它只能到最新的和特定的。我们将不得不等待 CI 4。
  • 刚刚想到了一个解决方法:$this->migration->current()-1 看看能不能解决问题。
猜你喜欢
  • 2019-12-06
  • 2017-08-18
  • 2017-11-29
  • 2014-06-21
  • 2015-12-07
  • 2011-06-24
  • 2011-04-08
  • 2012-08-27
  • 2021-07-01
相关资源
最近更新 更多