Gly*_*oko 5 ruby postgresql ruby-on-rails ruby-on-rails-6
我正在使用Rails 6,最近编写了一个小迁移文件,将一列添加到表中。简单的东西:
class AddInstagramUsernameToUsers < ActiveRecord::Migration[6.0]
def change
add_column :users, :instagram_username, :string
end
end
Run Code Online (Sandbox Code Playgroud)
但是请注意,我在运行迁移时看到以下行添加到了structure.sql中:
SET xmloption = content;
我对此并不特别担心(诚然,描述该选项的文档使它看起来似乎很无害),但是我不想让这么小的迁移更改任何元postgres内容。我尝试降级到Rails 5摆脱了这条线,但是没有运气。我使用的是Postgres版本10.8,最近尚未升级。
目前,我不知道该添加什么内容,如果可能的话,我想摆脱它。任何人都知道是什么原因造成的/如何预防呢?
Rails不会生成structure.sql-它可以在PostgreSQL的内置pg_dump工具中运行。根据Active Record Migrations Rails指南:
将模式格式设置
:sql为时,将使用特定于数据库的工具将数据库结构转储到db/structure.sql。例如,对于PostgreSQL,使用该pg_dump实用程序。
是pg_dump在您的中生成该行structure.sql。
据我所知,这样做的原因是,从pg_dump文件还原时,不能假定目标数据库xmloption与源数据库具有相同的设置。如果没有此行,则用户可能会遇到此bug报告中所述的问题。该更改包含在PostgreSQL 9.4.22中-特别是commit 8ba48542。
没有办法禁用它,也没有理由这样做。
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |