Rails 和现有的 Postgres 数据库

Rails and Existing Postgres Database

如果您想构建一个使用现有数据库的 Rails 项目,最佳做法是什么?

在我的例子中,运行 docker 带有 postgres 实例的远程机器上的 postgres 数据库有一个带有 table stake_address.

的数据库

现在我已经在 Rail 中创建了一个模型:

class StakeAddress < ApplicationRecord
end

rails console中:

2.6.1 :001 > StakeAddress.all
Traceback (most recent call last):
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR:  relation "stake_addresses" does not exist)
LINE 1: SELECT "stake_addresses".* FROM "stake_addresses" LIMIT 
                                        ^

有没有办法避免Rails寻找复数形式的table? 我想还会有很多其他类似的问题,所以我想知道这是否是常见的做法,或者是否是世界上强烈建议避免的事情?

另外我想我不需要迁移,因为数据库已经创建了。这会导致后续问题吗?

我的想法是我将能够连接到两个数据库,一个已经存在的只读数据库和另一个我可以将自己的模型作为用户放置的数据库。但是他们能够创建关联跨数据库吗?

也许 Rails 不是此类工作的最佳框架吗?这是我在训练营期间学到的东西,但也许我应该切换到更灵活的环境?

如果 table 不太多,我也会推荐@eyeslandic 的建议,并在需要它的模型中手动覆盖 table 名称。

self.table_name = 'stake_address'

如果有很多table,最好在长的运行中重新命名。 You can do this safely in production with something like LHM.