Ruby Rake ActiveRecord Migrate

时间:2017-03-14 20:02:19

标签: ruby activerecord

我正在尝试构建一个连接到数据库并运行一些基本查询的简单ruby脚本。

代码在这里:https://github.com/mastermindg/rack-activrecord-example

它不是服务 - 只是手动运行以执行批处理作业的脚本。我的问题是我需要填充数据库以进行测试。我知道如何在Sinatra和Rails中做到这一点但它失败的原因是:

NoMethodError: undefined method `set' for main:Object
Did you mean?  send
/usr/src/app/app.rb:7:in `<top (required)>'
/usr/src/app/Rakefile:2:in `<top (required)>'

我已经获得了database.yml,但由于设置失败,我无法告诉如何加载它。

如何使用ActiveRecord与基本Rack连接并查询数据库?

1 个答案:

答案 0 :(得分:0)

1)在Rakefile s:

之后将其添加到require
DatabaseTasks.database_configuration = YAML.load(File.read(File.join(root, 'config/database.yml')))

2)从set :database_file, 'config/database.yml'文件中删除app.rb(我认为set是一种sinatra/activerecord方法。)

正在运行rake db:create可能会给您的项目带来错误,因为您在json文件中使用的是JSON而不是app.rb(具体取决于您的身份)本地版本),所以。 。

3)将puts json Resource.select('id', 'name').all文件中的puts JSON Resource.select('id', 'name').all更改为app.rb

现在rake db:create会抛出数据库错误,但这是与您的特定数据库配置相关的错误,请对其进行适当的调整(这与原始问题无关,所以我赢了& #39; t进一步解决)你的应用程序应该按照你的意愿运行。

更多信息:

可用于在不使用Rails或Sinatra的情况下运行Active Record任务的Rakefile的gist shows示例内容。