有没有办法使用schema.rb从Rails内部创建数据库?

时间:2012-05-21 16:27:59

标签: ruby-on-rails database ruby-on-rails-3 activerecord

在Rails 3.2.3应用程序中,我需要允许管理员创建数据库并使用schema.rb中的表填充它。

只需在schema.rb中执行代码即可。基本上,我正在寻找一种方法:

rake db:setup

不使用“rake”。

我还有几件我想做的事情,例如备份数据库,我想知道是否有可以使用的Rails DSL,或者我是否需要编写SQL并通过ActiveRecord运行它:: Base.connection.execute。

感谢您提供的任何帮助。

4 个答案:

答案 0 :(得分:5)

您可以尝试从您的应用中运行它:

 system("rake db:setup")

答案 1 :(得分:2)

rake db:setup
rake db:schema:load 

这将创建一个数据库(如果不存在)并将schema.rb加载到数据库中。如果您不想使用rake,可以将模式存储为原始sql并加载它。

您可以使用backup gem进行备份。

答案 2 :(得分:1)

我不知道我是否理解,但

你可以使用seeds.rb 所以你可以创建表条目 像:

Person.create(email: "tom@mail.com", firstname: "Tom", phone: "0049-0")

然后制作一个

rake db:seed
控制台中的

答案 3 :(得分:0)

您可以使用'load'路径/加载到/ schema.rb“它将从当前连接打开创建数据库