Ruby on rails &引用;列“中的空值”;版本;“不允许为空”;关于数据库:迁移

Ruby on rails &引用;列“中的空值”;版本;“不允许为空”;关于数据库:迁移,ruby-on-rails,ruby-on-rails-3,postgresql,Ruby On Rails,Ruby On Rails 3,Postgresql,我正试图从裸机上重建我的开发数据库,但遇到了一个我以前从未见过的奇怪错误。我似乎找不到原因。以下是我正在运行的命令和结果: rake db:drop rake db:create rake db:migrate:status Schema migrations table does not exist yet. rake db:migrate == CreateUser: migrating ============================================

我正试图从裸机上重建我的开发数据库,但遇到了一个我以前从未见过的奇怪错误。我似乎找不到原因。以下是我正在运行的命令和结果:

rake db:drop rake db:create rake db:migrate:status Schema migrations table does not exist yet. rake db:migrate == CreateUser: migrating ===================================================== -- create_table(:user) -> 0.0264s == CreateUser: migrated (0.0267s) ============================================ rake aborted! An error has occurred, this and all later migrations canceled: PG::NotNullViolation: ERROR: null value in column "version" violates not-null constraint DETAIL: Failing row contains (null). : INSERT INTO "schema_migrations" DEFAULT VALUES /home/xxx/.rvm/gems/ruby-2.0.0-p451/gems/activerecord-4.0.3/lib/active_record/connection_adapters/postgresql_adapter.rb:774:in `async_exec' rake db:下降 rake数据库:创建 rake数据库:迁移:状态 架构迁移表尚不存在。 rake数据库:迁移 ==CreateUser:正在迁移===================================================== --创建_表(:用户) ->0.0264s ==CreateUser:已迁移(0.0267s)============================================ 雷克流产了! 发生错误,此迁移和所有后续迁移已取消: PG::NotNullViolation:错误:“版本”列中的null值违反非null约束 详细信息:失败的行包含(null)。 :将默认值插入到“schema_migrations”中 /home/xxx/.rvm/gems/ruby-2.0.0-p451/gems/activerecord-4.0.3/lib/active\u record/connection\u adapters/postgresql\u adapter.rb:774:in`async\u exec'
我相当肯定,自从上次成功迁移用户迁移文件以来,我没有修改过它。你们中有人以前见过这个错误并解决了它吗?

在迁移中尝试:text而不是:string。

是否有一个迁移不以时间戳开始?看来Postgre SQL正在尝试为您的
schema
表的
version
列插入空值…--另外,您知道什么是
默认值吗
?迁移做什么?版本插入是文件名的开始(通常
timestamp\u migration\u name.rb
)。我打赌您的迁移文件名以
开头。我删除了第一次迁移,并在没有迁移的情况下重试,但得到了相同的错误。文件命名正确,即20140306165659_create_user.rb。迁移文件本身似乎没有问题。最终解决了这个问题。和往常一样,这是一个愚蠢的程序员的错误。我一直在为我的项目开发ActiveRecord的一个扩展,该扩展就是这个错误的根源。一旦删除,迁移将再次工作。谢谢大家的帮助!