私は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
を明示的に定義するときに起こっている理由はまだありません。
すでにそれを行うに。私は問題を回避することができました。私の更新ノートを参照してください。とにかくありがとう。 – hlmerscher