Tôi đang cố gắng chạy lệnh CREATE INDEX CONCURRENTLY đối với cơ sở dữ liệu Postgres 9.2. Tôi đã triển khai MigrationResolver như được hiển thị trong số phát hành 655. Khi bước di chuyển này được chạy qua mvn flyway:migrate
hoặc tương tự, lệnh sẽ bắt đầu nhưng bị treo trong chế độ chờ.Di chuyển đường bay bị treo cho postgres CREATE INDEX CONCURRENTLY
Tôi xác nhận rằng lệnh được thực hiện thông qua pg_stat_activity
bảng:
test_2015_04_13_110536=# select * from pg_stat_activity;
datid | datname | pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | state_change | waiting | state | query
-------+------------------------+-------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+-------------------------------+-------------------------------+-------------------------------+---------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
21095 | test_2015_04_13_110536 | 56695 | 16385 | postgres | psql | | | -1 | 2015-04-13 11:10:01.127768-06 | 2015-04-13 11:13:08.936651-06 | 2015-04-13 11:13:08.936651-06 | 2015-04-13 11:13:08.936655-06 | f | active | select * from pg_stat_activity;
21095 | test_2015_04_13_110536 | 56824 | 16385 | postgres | | 127.0.0.1 | | 52437 | 2015-04-13 11:12:55.438927-06 | 2015-04-13 11:12:55.476442-06 | 2015-04-13 11:12:55.487139-06 | 2015-04-13 11:12:55.487175-06 | f | idle in transaction | SELECT "version_rank","installed_rank","version","description","type","script","checksum","installed_on","installed_by","execution_time","success" FROM "public"."schema_version" ORDER BY "version_rank"
21095 | test_2015_04_13_110536 | 56825 | 16385 | postgres | | 127.0.0.1 | | 52438 | 2015-04-13 11:12:55.443687-06 | 2015-04-13 11:12:55.49024-06 | 2015-04-13 11:12:55.49024-06 | 2015-04-13 11:12:55.490241-06 | t | active | CREATE UNIQUE INDEX CONCURRENTLY person_restrict_duplicates_2_idx ON person(name, person_month, person_year)
(3 rows)
Một dự án ví dụ mà tái tạo vấn đề này có thể được tìm thấy trong github của tôi: chrisphelps/flyway-experiment
nghi ngờ của tôi là truy vấn đường bay chống lại schema version
là idle in transaction
đang ngăn việc postgres tiếp tục tạo chỉ mục.
Làm cách nào để giải quyết xung đột để các bưu cục sẽ tiếp tục di chuyển? Có ai có thể áp dụng loại di cư này cho bưu cục qua đường bay không?
Tôi không hiểu tại sao nó sẽ bế tắc, kể từ khi chỉ số này trên một bảng khác nhau từ cái được sử dụng bởi đường bay (lược đồ _phiên bản). Hmmm ... –
Bạn có thể xác nhận hành vi trong repo không? – CPhelps