Mysql2 ::错误:PRIMARY KEY的所有部分必须为NOT NULL; 如果键中需要NULL,请改用UNIQUE

Kis*_*tel 10 ruby-on-rails ruby-on-rails-3

我在rails 3.2.9和中创建了一个演示应用程序ruby versiion 2.0.0.脚手架Blog模型后我试图迁移它,但有以下问题.

#rake db:migrate

== CreateBlogs:迁移============================================= =======

- create_table(:blogs)rake aborted!

StandardError:发生错误,所有以后的迁移都被取消:

Mysql2 ::错误:PRIMARY KEY的所有部分必须为NOT NULL; 如果在键中需要NULL,请使用UNIQUE:CREATE TABLE blogs(idint(11)DEFAULT NULL auto_increment PRIMARY KEY,titlevarchar(255),descriptiontext,created_atdatetime NOT NULL,updated_atdatetime NOT NULL)ENGINE = InnoDB/usr/local/rvm/gems/ruby-2.0.0-p648@demo-app/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:在query' /usr/local/rvm/gems/ruby-2.0.0-p648@demo-app/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in执行'/ usr/local/rvm/gems/ruby​​- 中的块中2.0.0-p648@demo-app/gems/activerecord-

....

....

....

-3.2.9/lib/active_record/migration.rb:551:在'/usr/local/rvm/gems/ruby-2.0.0-p648@demo-app/gems/rake-11.3中的migrate' /usr/local/rvm/gems/ruby-2.0.0-p648@demo-app/gems/activerecord-3.2.9/lib/active_record/railties/databases.rake:179:in块(2级)中. 0/exe/rake:27:在''任务:TOP => db:migrate(通过使用--trace运行任务来查看完整跟踪)

Swa*_*til 41

配置/初始化/ abstract_mysql2_adapter.rb

require 'active_record/connection_adapters/mysql2_adapter'

class ActiveRecord::ConnectionAdapters::Mysql2Adapter
  NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY"
end
Run Code Online (Sandbox Code Playgroud)