首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行测试的Rails Mysql::Error:字段'id‘没有默认值: INSERT INTO

问运行测试的Rails Mysql::Error:字段'id‘没有默认值: INSERT INTO
EN

Stack Overflow用户
提问于 2014-05-14 15:24:01
回答 1查看 2.7K关注 0票数 4

我正在尝试运行一些测试,但一直收到以下错误:

代码语言:javascript
复制
ActiveRecord::StatementInvalid: Mysql::Error: Field 'id' doesn't have a default value: INSERT INTO ...

我有一台MacOX10.9.2,我使用的是mysql2 gem。我只得到一些实体的错误。这对我来说很奇怪,因为我和ubuntu在一台机器上使用了相同的模式,而且每件事都没有问题。

在mac上的mysql2 gem有什么问题吗?或者在mac上有什么需要注意的问题吗?

EN

回答 1

Stack Overflow用户

发布于 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

代码语言:javascript
复制
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:迁移

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23648115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档