0

Я использую Play 2.3 и пытаюсь создать реляционную базу данных по эволюции для PostgreSQL 9.4.Почему эволюция в Play Framework не работает?

У меня есть следующие высказывания в моем conf/evolutions/default/1.sql сценария:

ALTER TABLE ONLY round 
ADD CONSTRAINT round_event_id_fkey FOREIGN KEY (event_id) REFERENCES event(id); 

ALTER TABLE ONLY round 
ADD CONSTRAINT round_event_id UNIQUE (event_id); 

Ниже приводится мое описание таблицы событий:

Table "public.event" 
      Column    |   Type    |      Modifiers 
-------------------------------+-----------------------------+---------------------------------------------------- id       | integer      | not null default nextval('event_id_seq'::regclass) related_event_hash   | character varying(45)  | start_time     | timestamp without time zone | end_time      | timestamp without time zone | name       | character varying(45)  | status      | character varying(45)  | not null owner_id      | bigint      | not null venue_id      | bigint      | participation_hash   | character varying(45)  | number_of_participants  | integer | number_of_backup_participants | integer      | created      | timestamp without time zone | not null updated      | timestamp without time zone | not null Indexes: 
    "event_pkey" PRIMARY KEY, btree (id) 
    "index_event_name" btree (name) 
    "index_event_status" btree (status) 
    "index_start_time" btree (start_time) Foreign-key constraints: 
    "event_owner_id_fkey" FOREIGN KEY (owner_id) REFERENCES person(id) 
    "event_venue_id_fkey" FOREIGN KEY (venue_id) REFERENCES venue(id) Referenced by: 
    TABLE "anonymous_person" CONSTRAINT "anonymous_person_event_id_fkey" FOREIGN KEY (event_id) REFERENCES event(id) 
    TABLE "mix_game" CONSTRAINT "mix_game_event_id_fkey" FOREIGN KEY (event_id) REFERENCES event(id) 
    TABLE "participant" CONSTRAINT "participant_event_id_fkey" FOREIGN KEY (event_id) REFERENCES event(id) 

При запуске приложения в браузере, я получаю эту ошибку:

Database 'default' is in an inconsistent state! 

При попытке запустить этот SQL-скрипт мы получили следующие ошибка 0:

ERROR: there is no unique constraint matching given keys for referenced table "round" [ERROR:0, SQLSTATE:42830] 

Что может быть неправильным? Как исправить эту ошибку и добавить ограничения внешнего ключа?

Обратите внимание, что он генерирует базу данных круглым следующим образом без ограничений внешнего ключа.

        Table "public.round" 


    Column  |   Type   |      Modifiers 
------------------+-----------------------+---------------------------------------------------- 
id    | integer    | not null default nextval('round_id_seq'::regclass) 
round_no   | integer    | not null 
event_id   | bigint    | not null 
state   | character varying(20) | not null 
team_composition | character(12)   | not null 
result   | character varying(20) | 
description  | character varying(45) | 
play_time  | integer    | not null 
shift_time  | integer    | 
change_time  | integer    | 
Indexes: 
    "round_pkey" PRIMARY KEY, btree (id) 
    "round_event_id" UNIQUE CONSTRAINT, btree (event_id) 

ответ

0

Посмотрите на documentation.

As you see you have to delimit the both Ups and Downs section by using comments in your SQL script.

Кроме того, не редактировать файл 1.sql, поскольку он обновляется с помощью механизма эволюции. Начните свои разработки на уровне 2.sql.

 Смежные вопросы

  • Нет связанных вопросов^_^