【问题标题】:Allow all MySQL DB fields to be nullable - Laravel 5.3允许所有 MySQL 数据库字段为空 - Laravel 5.3
【发布时间】:2017-11-18 01:25:12
【问题描述】:

我有使用 Laravel 迁移创建的 MySQL 数据库,我希望所有表中的所有字段都可以为空(当然除了 PK 和 FK)。 删除 db 并重新运行迁移没有问题,但我应该修改现有迁移并将 ->nullable() 添加到每个属性吗?还是我应该创建新的迁移来做这些改变?还是有其他更好的方法??

【问题讨论】:

    标签: mysql laravel-5 database-migration


    【解决方案1】:

    标准做法是对架构的每次更改进行新的迁移,否则您可能会影响应用程序回滚和再次向前迁移的能力。

    【讨论】:

      【解决方案2】:

      您可以创建一个循环遍历所有表字段并使其可为空的 MySQL 函数,您的(我认为最好的原因)在所有迁移中添加 ->nullable()

      【讨论】:

      • 你的意思是改变现有的迁移?例如:更改 $table->string('name');到 $table->string('name')->nullable(); ?然后删除数据库并重新运行迁移? @Gabriel Caruso
      • 是的@RowaydaKhayri。我已经做了很多很多次,100%的工作。只是要小心外键,检查它们都不能为空,但是,正如你所问的,你的 PK 和 FK 不会!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      相关资源
      最近更新 更多