【问题标题】:Laravel 5.* modify column with migrationLaravel 5.* 使用迁移修改列
【发布时间】:2017-10-03 11:58:12
【问题描述】:

我已按照 laravel 迁移步骤进行操作,而且效果很好。我的问题是关于修改列。我已经在作曲家中安装了学说\dbal。但是当我用 change 方法更改列 $table->string('name')->nullable()->change() 时,然后运行 ​​php artisan migrate。是说什么迁移。为什么?我需要在迁移表类中使用像 use Doctine\dbal 这样的 doctrin\dbal 吗?或者,在迁移中修改表列的更好方法是什么?我应该运行什么工匠?请帮忙!

【问题讨论】:

  • 您是否创建了新的迁移来更改字段?如果没有,那么您必须创建一个新的迁移,因为您更改的迁移已注册为完成,因此不会再次运行。
  • 也就是说,即使我改变了任何东西,旧的迁移也没有效果?
  • 否,旧迁移已运行,因此不会再次运行。您需要创建一个新的迁移文件来更改现有表,或者您可以使用命令 php artisan migrate:refresh 重新运行所有迁移。
  • 感谢@JoshBolton 的回复。这真的很有帮助。上帝保佑你。
  • 我现在已经发布了以上作为答案,如果您认为这是正确的,请您接受这个答案。

标签: laravel-5 migration


【解决方案1】:

租户迁移只会运行一次,这意味着一旦运行,一旦运行 php artisan migrate 就不会再次运行。您可以通过查看数据库中的迁移表来查看已在您的应用程序中运行的所有迁移。

如果您编辑迁移文件并需要重新运行所有迁移,您可以使用以下命令 php artisan migrate:refresh。这将回滚所有迁移并重新运行它们,并增加迁移表上的批号。

如果您需要编辑其中一个表但不需要重新运行所有迁移,则应创建一个新迁移并在该特定迁移中编辑相关表。再次运行 migrate 命令后,只会执行新的迁移。

您可以在以下链接中找到有关所有这些的更多信息:https://laravel.com/docs/5.4/migrations

【讨论】:

    猜你喜欢
    • 2020-10-27
    • 2016-07-27
    • 2017-05-03
    • 2016-01-07
    • 2016-05-09
    • 2016-04-12
    • 2015-10-18
    • 1970-01-01
    相关资源
    最近更新 更多