База данных «по умолчанию» нуждается в эволюции! при попытке подключиться к MySQL с Play Framework 2.7.0 и Ebean - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь настроить проект, используя play framework 2.7.0, сейчас я пытаюсь подключиться к базе данных MySQL, используя sbt-play-ebean 5.0.0.

Вот мой код.https://github.com/hiroya8649/play-mysql-ebean-test

Вот файлы, которые вы можете проверить:

https://github.com/hiroya8649/play-mysql-ebean-test/blob/master/conf/application.conf

https://github.com/hiroya8649/play-mysql-ebean-test/blob/master/build.sbt

https://github.com/hiroya8649/play-mysql-ebean-test/blob/master/project/plugins.sbt

Теперь я пытаюсь подключиться к localhost: 9000, он говорит мне Database 'default' needs evolution! An SQL script will be run on your database и кнопку run this script.

То же самое с этим сценарием: https://github.com/hiroya8649/play-mysql-ebean-test/blob/master/conf/evolutions/default/1.sql Но если янажмите run this script, и он скажет мне

Evolution has not been applied properly. Please check the problem and resolve it manually before marking it as resolved. -
We got the following error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'delimiter $$ -- -- PROCEDURE: usp_ebean_drop_foreign_keys TABLE, COLUMN -- delete' at line 1 [ERROR:1064, SQLSTATE:42000], while trying to run this SQL script:

Если я просто отмечу, что оно разрешено, откроется страница play hello world.Но я не думаю, что это правильно, и я добавил в проект модель Task, поэтому я думаю, что она должна быть создана в виде таблицы в базе данных, но это не так.

Что-то не так?с моими настройками?


Я нахожу ту же проблему в playframework и play-ebean GitHub, похоже, это происходит в play версии 2.6.20 и еще не исправлена.

1 Ответ

0 голосов
/ 25 апреля 2019

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

Пример:

https://github.com/hiroya8649/play-mysql-ebean-test/blob/master/conf/evolutions/default/1.sql#L10

https://github.com/hiroya8649/play-mysql-ebean-test/blob/master/conf/evolutions/default/1.sql#L40

delimiter $$
....
DROP PROCEDURE IF EXISTS usp_ebean_drop_column;

Вам нужно изменить на:

DROP PROCEDURE IF EXISTS usp_ebean_drop_column$$

Или:

delimiter $$
...
delimiter ;
DROP PROCEDURE IF EXISTS usp_ebean_drop_column;
...