每次我在项目上运行rake db:migrate
时,db/structure.sql
都会发生变化,我感到很高兴。不幸的是,这些更改不仅增加了我的表,而且还显式地使用了我们的tenant
关键字和extensions
关键字。
db/structure.sql | 20278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------
1 file changed, 9565 insertions(+), 10713 deletions(-)
这是我迁移后有趣的差异的一部分:
-CREATE FUNCTION _final_median_function(anyarray) RETURNS double precision
+CREATE FUNCTION extensions._final_median_function(anyarray) RETURNS double precision
这是表格的示例:
-SET search_path = at, pg_catalog;
-CREATE TABLE advert_all_clicks (
+CREATE TABLE at.advert_all_clicks (
Postgres 9.6.10(也经过测试,它发生在10. +中) 多租户使用apartment
有人知道为什么会这样吗?找不到太多,我正在与之抗争一段时间。
编辑:关于我的问题,我发现了this,但它适用于Postgres <9.3
答案 0 :(得分:0)
这很奇怪,但是如果有人遇到相同的问题,我将做出回应。
如果您正在使用db/xx.sql
文件的项目中,然后将其打开,则在第一行中,您将看到pg_dump
和postgres
的版本生成此转储。
为了从转储中成功还原或运行db/xx.sql
时清理此文件db:migrate
,您必须安装相同的版本。它不适用于其他主要/次要/发行版本(必须完全相同)
在我的情况下,第一行看起来像:
--
-- PostgreSQL database dump
--
-- Dumped from database version 9.6.5
-- Dumped by pg_dump version 9.6.5
我尝试安装9.6.10(当前为postgresql@9.6)和其他不同版本。直到我从源代码准确地编译了9.6.5为止,它一直困扰着我的文件。
找不到对此的解释,我也看不到9.6.x更改日志中的更改。
很快,我将创建一个自制的点击,并在此处作为示例。