在Rails中在运行时创建数据库和表

问题描述 投票:0回答:3

是否可以在Rails应用程序中在运行时创建数据库和表?

例如:服务器接收带有一些数据的请求。然后,它应该在PostgreSQL中创建一个数据库,并在该新数据库中创建一些表。这可能吗?

ruby-on-rails ruby postgresql
3个回答
0
投票

是的,它可能。也许不推荐。


0
投票

使用Sequel gem(http://sequel.jeremyevans.net/),可以在运行时创建数据库,运行SQL脚本。

我只尝试过PostgreSQL数据库,不确定是否可以与其他人一起使用。

对于PostgreSQL数据库

连接到PostgreSQL服务器

要连接到PostgreSQL服务器,您始终必须定义要连接的数据库。使用'postgres'数据库,这是PostgreSQL服务器创建的默认数据库(更多信息:Default database named postgres on Postgresql server)。

db = Sequel.postgres('postgres', user, password, host, port)

运行SQL脚本以创建数据库

db.run "CREATE DATABASE my_new_db"

-1
投票

最好和最安全的方法是使用seeds.rb文件。

例如,您可以添加新用户:

# db/seeds.rb
user = User.create!(email: '[email protected]', password: '123456789', firstname: "firstname", lastname: "lastname", phone: "0123456789", address: "my street address")

之后你需要在你的终端上运行:

rails db:seed

通过这种方式,您可以从不同的模型添加所需的所有数据。这里更多解释migrations-and-seed-data

希望能帮助到你

© www.soinside.com 2019 - 2024. All rights reserved.