在Rails之外使用ActiveRecord :: Database :: Tasks时,我需要配置什么来避免开发数据库没有配置错误?

时间:2016-01-22 20:35:20

标签: ruby-on-rails ruby activerecord

我在Ruby off Rails应用程序中的Ruby文件脚本中调用ActiveRecord::Tasks::DatabaseTasks.load_schema_current(:sql, file)(本质上是一个Thor任务),我收到以下错误:

/gems/activerecord-4.2.5/lib/active_record/connection_adapters/connection_specification.rb:248:in `resolve_symbol_connection': 'development' database is not configured. Available: [] (ActiveRecord::AdapterNotSpecified)

ActiveRecord :: Tasks :: DatabaseTasks是否为我提供了在rails之外设置默认数据库配置所需的功能(我假设我需要提供类似于Rails中的database.yml中的信息)?如果是这样,我需要调用哪些功能?我在看http://api.rubyonrails.org/classes/ActiveRecord/Tasks/DatabaseTasks.html,但对我来说有点不清楚。

2 个答案:

答案 0 :(得分:0)

在加载架构之前,需要加载数据库配置(如database.yml):

DatabaseTasks.database_configuration = YAML.load_file('my_database_config.yml')

答案 1 :(得分:0)

我能够在非Rails项目中使用以下内容...

db_config = YAML.load_file('path/to/database.yml')
ActiveRecord::Tasks::DatabaseTasks.load_schema_for(
  db_config, :ruby, 'path/to/schema.rb')