gpt4 book ai didi

ruby-on-rails - Rails 运行测试 Mysql::Error: Field 'id' 没有默认值:INSERT INTO

转载 作者:行者123 更新时间:2023-12-04 06:26:42 27 4
gpt4 key购买 nike

我正在尝试运行一些测试,但不断收到此错误:

ActiveRecord::StatementInvalid: Mysql::Error: Field 'id' doesn't have a default value: INSERT INTO ...

我有一个 Mac OX 10.9.2,我使用的是 mysql2 gem。
我只收到某些实体的错误。
对我来说很奇怪,因为我在装有 ubuntu 的机器上使用相同的模式,并且一切正常。

mac 上的 mysql2 gem 是否存在问题,或者在 mac 上与此问题相关的一些注意事项?

最佳答案

问题是您尝试更新的表有一个主键“id”字段,但没有在该字段上定义 auto_increment。您必须添加 auto_increment。您可以直接使用 msql 或通过 Ruby Rails 迁移来执行此操作。

(1) MYSQL(记得用 ; 或\g 结束行)

mysql> ALTER TABLE table_name MODIFY COLUMN field_name INT AUTO_INCREMENT;

(2) rails

project_dir> rails 生成迁移 table_name_autoincrement

然后编辑 rails 为您生成的迁移文件。我的是:
..\project_dir\db\migrate\20170415233610_section_edits_autoincrement.rb

class SectionEditsAutoincrement < ActiveRecord::Migration[5.0]

def change

execute "ALTER TABLE section_edits MODIFY COLUMN id INT AUTO_INCREMENT;"

end

end

保存然后运行 ​​rake migrate:

project_dir>rake db:migrate

关于ruby-on-rails - Rails 运行测试 Mysql::Error: Field 'id' 没有默认值:INSERT INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23648115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com