2016-03-22 2 views
0

Я хотел импортировать исходные данные Liquibase, создал CSV, добавил все, как сказано в документации, но это не сработало. Проблема заключается в том, что LiquiBase добавляет Misterious [*] для значений UUID, и запрос не удаетсяОшибка импорта Liquibase CSV

flashcards.csv

id,question,answer,deckId 
6ab90e8c-3f28-46b2-81f3-b668f6908c09, testQuestion1, testAnswer1, c6c4d451-65dd-4ac0-9e53-974397c7bea7 
a2670d1a-b8fe-4884-ba49-24f5d9458a12, testQuestion2, testAnswer2, c6c4d451-65dd-4ac0-9e53-974397c7bea7 
3d55ce90-e2c6-4c0e-b94d-879f1194356c, testQuestion3, testAnswer3, c6c4d451-65dd-4ac0-9e53-974397c7bea7 
3a581ad7-ac65-4a49-9697-9d111b3635a7, testQuestion4, testAnswer4, 3809da97-3fe2-4f13-bbc8-1442ea62d719 
fc6583eb-99be-4f39-8de6-47fff909431e, testQuestion5, testAnswer5, 3809da97-3fe2-4f13-bbc8-1442ea62d719 

migrations.xml

<loadData tableName="flashcards" file="initialData/flashcards.csv"> 
      <column name="id" type="COMPUTED" /> 
      <column name="question" type="STRING" /> 
      <column name="answer" type="STRING" /> 
      <column name="deckId" type="COMPUTED" /> 
</loadData> 

идентификатор и deckId в базе данных установлен тип UUID, таблица успешна.

Вот сообщение об ошибке:

Синтаксическая ошибка в SQL заявления «INSERT INTO PUBLIC.FLASHCARDS (ID, ВОПРОС, ОТВЕТ, DECKID) ЗНАЧЕНИЯ (6AB90E8C [*] - 3F28-46B2-81F3- B668F6908C09, 'testQuestion1', ' testAnswer1', C6C4D451-65DD-4AC0-9E53-974397C7BEA7) ";

ожидается "[, ::, *, /,%, +, -, ||, ~,! ~, NOT, LIKE, REGEXP, IS, IN, МЕЖДУ И ИЛИ ИЛИ, ,,) ;

SQL заявление: INSERT INTO PUBLIC.flashcards (идентификатор, вопрос, ответ, deckId) VALUES (6ab90e8c-3f28-46b2-81f3-b668f6908c09, ' testQuestion1', 'testAnswer1', c6c4d451-65dd-4ac0-9e53 -974397c7bea7) [42001-190] [Ошибка SQL:

INSERT INTO PUBLIC.flashcards (идентификатор, вопрос, ответ, deckId) ЗНАЧЕНИЯ (6ab90e8c-3f28-46b2-81f3-b668f6908c09, 'testQuestion1', ' testAnswer1 ', c6c4d451-65dd-4ac0-9e53-974397c7bea7)]

liquidibase.exception.DatabaseException: ошибка синтаксиса в операторе SQL «INSERT INTO PUBLIC.FLASHCARDS (ID, ВОПРОС, ОТВЕТ, DECKID) ЗНАЧЕНИЯ (6AB90E8C [*] - 3F28-46B2-81F3-B668F6908C09, 'testQuestion1', ' testAnswer1', C6C4D451-65DD-4AC0-9E53-974397C7BEA7) ";

ожидается "[, ::, *, /,%, +, -, ||, ~,! ~, NOT, LIKE, REGEXP, IS, IN, МЕЖДУ И ИЛИ ИЛИ, ,,) ;

SQL заявление: INSERT INTO PUBLIC.flashcards (идентификатор, вопрос, ответ, deckId) VALUES (6ab90e8c-3f28-46b2-81f3-b668f6908c09, ' testQuestion1', 'testAnswer1', c6c4d451-65dd-4ac0-9e53 -974397c7bea7) [42001-190]

[Ошибка SQL: INSERT INTO PUBLIC.flashcards (идентификатор, вопрос, ответ, deckId) VALUES (6ab90e8c-3f28-46b2-81f3-b668f6908c09, ' testQuestion1', ' testAnswer1 ', c6c4d451-65dd-4ac0-9e53-974397c7bea7)]

Как исправить эту проблему?

ответ

0

Я думаю, ошибка в том, что в вашем migrations.xml вы указываете тип столбцов id и deckId как computed, и они должны быть строковыми.

+0

'loadData тип uuid не поддерживается.Используйте BOOLEAN, NUMERIC, DATE, STRING, COMPUTED или SKIP'. Это ошибка, которая возникает, когда я пытаюсь сделать тип поля UUID. – VanDavv

+0

Похоже, что это будет проблемой. Может быть, если вы используете STRING? – SteveDonie

+0

Если STRING не работает, возможно, это будет что-то, что необходимо устранить в коде импорта CSV Liquibase. – SteveDonie