Próbuję użyć liquibase do generowania changeLog, zaczynając od zrzutu stanu bieżącego mojej bazy danych.Liquibase - jak wygenerować dziennik zmian dla istniejącej bazy danych
szczegóły Środowisko:
- System operacyjny: Windows 7 32 x86,
- Java JDK 1.7,
- mysql jdbc sterownik MySQL
- liquibase 2.0.5.
uruchomić następujące z linii poleceń:
liquibase --driver=com.mysql.jdbc.Driver --changeLogFile=./structure.xml --url="jdbc:mysql://mysql.mysite.com" --username=<myuser> --password=<mypass> generateChangeLog
To działa dobrze, a wygenerowany plik wyjściowy. Ale plik wyjściowy zawiera tylko:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"/>
W mojej bazie danych nie są tworzone tabele (spodziewałem się dwóch tabel używanych do śledzenia).
Czego mi brakuje?
edytuje
Tak, mam na myśli liquibasechanlog i tabele liquibasechangelock. Wiem, że powinny one automatycznie pojawiać się w bazie danych. Moje pytanie brzmi: dlaczego ich tam nie ma. I tak, dostarczony użytkownik ma prawa przyznane za wykonanie takiego zadania.
I to nie jest pusta baza danych. Ma blisko 20 tabel, 10 widoki danych ...
Przez dwie tabele używane do śledzenia masz na myśli 'liquibasechangelog' i' liquibasechangeloglock'? W rzeczywistości nie są one zarządzane przez plik liquibase.xml, ale są tworzone automatycznie. –
Aby rozwinąć to, o co prosił Christoph. Twoja baza danych nie zawiera tabel aplikacji i pytasz, dlaczego dziennik zmian jest pusty? :-) –
Mam takie samo zachowanie, które opisałeś, jeśli nie określiłem bazy danych w adresie URL połączenia '--url =" jdbc: mysql: //mysql.mysite.com "' ale jeśli dodaję nazwę bazy danych to działa dobrze: '--url =" jdbc: mysql: //mysql.mysite.com/dummy "'. – poussma