2017-12-13 15 views
0

私はpostgresqlといくつかの拡張機能を使用するレールアプリを持っていますが、毎回rails db:migrateを実行すると拡張機能を有効にする行が削除されます。毎回手動でコピー&ペーストする必要があります。デシベル/ structure.sqlに削除され移行時にdb/structure.sqlでPostgresql拡張機能が削除されました

ライン:

-- Name: EXTENSION "postgis"; Type: COMMENT; Schema: -; Owner: - 
-- 

CREATE EXTENSION IF NOT EXISTS "postgis" WITH SCHEMA public; 


-- 
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - 
-- 

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; 


-- 
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - 
-- 

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; 


-- 
-- Name: pg_trgm; Type: EXTENSION; Schema: -; Owner: - 
-- 

CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA public; 


-- 
-- Name: EXTENSION pg_trgm; Type: COMMENT; Schema: -; Owner: - 
-- 

COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams'; 


-- 
-- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: - 
-- 

CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public; 


-- 
-- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner: - 
-- 

COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)'; 

マイdatabase.ymlの:

default: &default 
    adapter: postgis 
    encoding: unicode 
    host: <%= ENV.fetch('DB_HOST', 'localhost') %> 
    username: <%= ENV.fetch('DB_USERNAME') %> 
    password: <%= ENV.fetch('DB_PASSWORD') %> 
    schema_search_path: public 

test: 
    <<: *default 
    database: db_test 

development: 
    <<: *default 
    database: db_development 

production: 
    <<: *default 
    database: db_production 

私はそれを修正することができますどのように任意のアイデア?

私は、以下のバージョンを使用しています:

のpostgresql:9.6

たPostGIS:2.3

レール:5.0

のMacOS:10.12

UPDATE:

問題を回避する方法を見つけることができました。 schema_search_pathを公開しているので、定義されていない場合、デフォルトのオプションはpublicです。この行をdatabase.ymlから削除しただけで動作します。まだschema_search_pathを明示的に定義するときに起こっている理由はまだありません。

答えて

0

あなたは、マイグレーションを生成し、enable_extension方法使用できます。

class AddExtensions < ActiveRecord::Migration[5.1] 
    def change 
    enable_extension "postgis" 
    enable_extension "plpgsql" 
    enable_extension "pg_trgm" 
    enable_extension "uuid-ossp" 
    # ... 
    end 
end 
+0

すでにそれを行うに。私は問題を回避することができました。私の更新ノートを参照してください。とにかくありがとう。 – hlmerscher

関連する問題