gpt4 book ai didi

ruby-on-rails - 创建数据库的 Active Record 错误

转载 作者:数据小太阳 更新时间:2023-10-29 08:45:33 25 4
gpt4 key购买 nike

在我的 spec/rails_helper.rb 中,我有下面的代码来创建测试数据库(如果它没有退出的话)。

def database_exists?
ActiveRecord::Base.connection rescue ActiveRecord::NoDatabaseError ? false : true
end
unless database_exists?
ActiveRecord::Base.establish_connection(:"#{ENV['RAILS_ENV']}")
db_config = ActiveRecord::Base.configurations[ENV['RAILS_ENV']]
ActiveRecord::Base.connection.create_database db_config
end

但是当调用 rspec 时我得到了这个错误:

.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/mysql2_adapter.rb:23:in `rescue in mysql2_connection': Unknown database 'my-db-test' (ActiveRecord::NoDatabaseError)

问题出在哪里?

如果我使用system('rake db:create'),它会起作用,但这是一个很好的实践吗?

最佳答案

数据库不存在,为了避免错误你可以运行:

rake db:create

或者你可以运行:

rake db:setup

这将创建数据库并运行迁移文件。

关于ruby-on-rails - 创建数据库的 Active Record 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29856922/

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