gpt4 book ai didi

ruby-on-rails - Rails 追加数据库

转载 作者:行者123 更新时间:2023-12-03 07:04:29 26 4
gpt4 key购买 nike

是否可以在rails应用程序中附加两个数据库?例如,SQLite数据库是可移植的。我可以从另一台服务器下载 SQLite 数据库。当rails应用程序启动时,它会挂载数据库。我可以将另一个数据库中的所有数据附加到现有数据库中吗?也许 SQLite 提供了一种合并数据库的方法?

最佳答案

我不确定您所说的“在应用程序中附加数据库”是什么意思。但是您可以在应用程序中使用 2 个不同(具有不同方案)的数据库。例如:

config/database.yml

development:
adapter: mysql2
encoding: utf8
reconnect: false
database: project_dev
pool: 5
username: project
password:

test:
adapter: mysql2
encoding: utf8
reconnect: false
database: project_test
pool: 5
username: project
password:

sqlite:
development:
adapter: sqlite3
database: db/development.project.db
pool: 5
timeout: 5000

test:
adapter: sqlite3
database: db/test.project.db
pool: 5
timeout: 5000

型号:

所有sqlite模型的抽象模型;使用connection ninja gem

class SqliteModel < ActiveRecord::Base
self.abstract_class = true
use_connection_ninja(:sqlite)
end

Sqlite模型

class Book < SqliteModel
set_table_name :Books
set_primary_key :BookID

belongs_to :volume, :foreign_key => :VolumeID
has_many :chapters, :foreign_key => :BookID
end

Mysql模型

class Highlight < ActiveRecord::Base
# ...
end

您甚至可以在不同数据库中的表之间使用关联。

但是如果您询问是否使用具有相同方案的两个数据库(即只是不同的数据),那么我的答案是否定的,这是不可能的(尽管我可能是错的)。我认为这是一个关于复制、同步、备份或类似的问题 - 数据库层,而不是应用程序。

当然,您可以在两个数据库中拥有 2 个相同的表、2 个模型 - 每个数据库一个,然后将记录从一个数据库复制到另一个数据库。但 Rails 不会自动执行此操作。

关于ruby-on-rails - Rails 追加数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9657538/

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