我正在尝试运行一些测试,但一直收到以下错误:
ActiveRecord::StatementInvalid: Mysql::Error: Field 'id' doesn't have a default value: INSERT INTO ...我有一台MacOX10.9.2,我使用的是mysql2 gem。我只得到一些实体的错误。这对我来说很奇怪,因为我和ubuntu在一台机器上使用了相同的模式,而且每件事都没有问题。
在mac上的mysql2 gem有什么问题吗?或者在mac上有什么需要注意的问题吗?
发布于 2017-04-16 08:12:21
问题是,您试图更新的表有一个主键"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:迁移
https://stackoverflow.com/questions/23648115
复制相似问题