1

升级到 rails 5.2 并运行 rake db:migrate 后,我收到以下错误

ActiveRecord::NotNullViolation: Mysql2::Error: Field 'key' doesn't have a default value: INSERT INTO 'ar_internal_metadata'

我知道这是 rails 5 及更高版本中的新事物,以防止生产中潜在的数据丢失。我在生成此表的架构或迁移中找不到任何位置。它创建没有默认值的键列,因为它是主键,所以不能更改。任何帮助将不胜感激。

4

1 回答 1

0

经过更多研究,我发现ar_internal_metadata只有在运行 rake db:migrate 时进行活动迁移时,才会设置自动生成的表中的值。解决方法是在表中手动设置值,以便:

关键 -> 环境和价值 -> 生产

希望这对其他人有帮助。

于 2020-07-16T15:07:53.087 回答