true do |t| t.string-6ren">
gpt4 book ai didi

ruby-on-rails - Rails 测试数据库未正确准备

转载 作者:行者123 更新时间:2023-11-28 20:56:07 24 4
gpt4 key购买 nike

我在 Rails3 中正确准备测试数据库时遇到奇怪的问题。

在 schema.rb 我有:

create_table "sites", :force => true do |t|
t.string "ldap_dn", :null => false
t.string "address"
t.string "phone"
t.string "description"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end

然后在我的一个迁移中我有:

change_column :sites, :id, :string, :limit => 255, :primary_key => true

现在,在 rake db:migrate 之后的开发 数据库中

id VARCHAR(255) PK

但是在测试数据库中 rake db:test:prepare 我有

id INT(11) PK AI

在日志文件 (test.log) 中,我可以看到所有迁移都已执行。

我使用:

  • rails 3.2.13
  • 用于开发和测试数据库的 mysql

这是某种错误吗?

编辑:

  • 我指的是开发数据库。对不起。

最佳答案

检查你的 db/schema.rb 你有什么。 rake 任务 db:test:prepare(和 db:test:load)只是从你的模式文件中重新创建数据库,在某些情况下它可能与 schema_migrations 表不一致(当你运行迁移然后在开发过程中更改它时)。

如果您在架构中将 id 定义为 INT,并且您的开发环境中没有待处理的迁移,那么您需要使用 rake db:migrate:redo 重新运行迁移。

关于ruby-on-rails - Rails 测试数据库未正确准备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17908780/

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