2013-04-06 3 views
2

При добавлении таблицы объединения @ManyToMany в две модели, в этом случае модели пользователя и статьи [1], Play правильно обнаруживает эти изменения и соответственно модифицирует файл 1.sql [2]:Play 2.1 framework не обнаруживает изменений эволюции

[1] 
+ @ManyToMany 
+ public List<User> authors; 

+ @ManyToMany(mappedBy="authors") 
+ public List<Article> authoredArticles; 

[2] 
+ create table articles_users (
+  articles_id     bigint not null, 
+  users_id      bigint not null, 
+  constraint pk_articles_users primary key (articles_id, users_id) 
+ ); 

+ alter table articles_users add constraint fk_articles_users_articles_01 foreign key (articles_id) references articles (id); 
+ alter table articles_users add constraint fk_articles_users_users_02 foreign key (users_id) references users (id); 

# --- !Downs 

+ drop table if exists articles_users cascade; 

Однако при открытии страницы, которая использует эту связь, сообщение не отображается об Эволюции необходимости применения, а представлена ​​следующая ошибка:

PersistenceException: Query threw SQLException:ERROR: relation "articles_users" does not exist 

Почему Play не обнаруживает, что он внес изменения в схему базы данных, которая должна применяться?

+0

У вас возникли проблемы в области производства или разработки? – MaFo

+0

Разработка, приложение в настоящее время не работает. – HaaR

ответ

2

Проверьте таблицу play_evolutions, если уже есть строка с идентификатором 1, вы должны переименовать sql-файл в 2.sql или вручную отбросить таблицы.

+0

Да, вы правы. Меня устраивает. – BalaB

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