sql
  • postgresql
  • liquibase
  • 2017-01-24 5 views 1 likes 
    1

    Я создал новый PostgreSQL БД на моем компьютере,LiquiBase не выполняет SQLs и возвращает Успешное обновление

    CREATE DATABASE "Test_Liquibase_Versionin" 
        WITH OWNER = postgres 
         ENCODING = 'UTF8' 
         TABLESPACE = pg_default 
         LC_COLLATE = 'English_United States.1252' 
         LC_CTYPE = 'English_United States.1252' 
         CONNECTION LIMIT = -1; 
    

    Скачано LiquiBase-3.4.2-бен и запустить эту команду:

    C:\LiquiBase\liquibase.bat --driver=org.postgresql.Driver --classpath="C:\LiquiBase\Driver\postgresql-9.4.1212.jar" --changeLogFile=C:\LiquiBase\changes\databaseChangeLog.sql --url="jdbc:postgresql://localhost:5432/Test_Liquibase_Versionin?user=test&password=Password" update 
    

    Получил этот ответ Liquibase Update Successful

    проверку БД и обратите внимание, что у меня есть 2 таблицы databasechangelog, databasechangeloglock

    изменил databaseChangeLog.sql выглядеть следующим образом:

    --liquibase formatted sql 
    
    
    create table employees(uuid int, name Varchar(10)); 
    insert into employees values(1, 'Mr'); 
    insert into employees values(2, 'Mail'); 
    create table depts(dept_id int, dep_name Varchar(10)); 
    

    выполняется снова C:\LiquiBase\liquibase.bat.........

    Получил этот ответ Liquibase Update Successful

    Записан в моей БД - но нет никаких новых таблиц, как и ожидалось. Что может быть причиной этого? Что я могу сделать, чтобы проверить, что случилось?

    +0

    Есть ли что-нибудь в 'databasechangelog'? –

    +0

    нет, пусто –

    ответ

    2

    Вам необходимо добавить набор изменений в скрипт.

    Это потому, что вы говорите Liquibase, что ваш скрипт sql равен Liquibase formatted sql. Но поскольку у вас нет изменений в нем, он ничего не делает.

    --liquibase formatted sql 
    
    --changeSet PeterH:Inserting-Values1 endDelimiter:; splitStatements:true stripComments:false runOnChange:false 
    
    create table employees(uuid int, name Varchar(10)); 
    insert into employees values(1, 'Mr'); 
    insert into employees values(2, 'Mail'); 
    create table depts(dept_id int, dep_name Varchar(10)); 
    
    +0

    Я подозревал что-то подобное, но поскольку я использую только формат XML, я не был уверен. –

    +0

    Не помню, какой endDelimiter следует использовать для postgresql, кто-то поможет мне здесь –

    +0

    ';' должно быть хорошо, я думаю –

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

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