Мне нужно преобразовать структуру баз PostgreSQL в Oracle. В PostgreSQL у меня есть база данных postgres
с данными.Генерировать вывод XML/SQL с типами данных целевой базы данных
В Oracle у меня есть пустая база данных, в которой я хочу написать базу данных postgres
, которая в PostgreSQL.
На самом деле, мне не нужны данные, только структура (отношения).
Для этого я использую Liquibase. Я получаю изменений от PostgreSQL с помощью команды:
liquibase \
--driver=org.postgresql.Driver \
--classpath="C:\db_drivers\postgresql-9.3-1102.jdbc3.jar" \
--changeLogFile="./postgresql_changelog.xml" \
--url="jdbc:postgresql://localhost:5432/postgres" \
--username=schema_name_here \
--password=************** \
--logLevel=debug \
--defaultSchemaName=sep \
generateChangeLog
После этого я пытаюсь создавать объекты в базе данных Oracle:
liquibase \
--driver=oracle.jdbc.OracleDriver \
--classpath="C:\db_drivers\ojdbc14.jar" \
--changeLogFile="./postgresql_changelog.xml" \
--url="jdbc:oracle:thin:@ip_here:orabeta" \
--username=*** \
--password=*** \
update
Не работает: ORA-00902
Вот фрагмент postgresql_changelog.xml:
...
<changeSet author="Alexey (generated)" id="1409146335011-53">
<createTable tableName="TABLE1A">
<column name="total_pk" type="INT8">
<constraints nullable="false"/>
</column>
<column name="form_fk" type="INT8">
<constraints nullable="false"/>
</column>
...
Я также генерировать чистый SQL- файла:
liquibase \
--driver=oracle.jdbc.OracleDriver \
--classpath="C:\db_drivers\ojdbc14.jar" \
--changeLogFile="./postgresql_changelog.xml" \
--url="jdbc:oracle:thin:@ip_here:orabeta" \
--username=*** \
--password=*** \
updateSQL > update.sql
Вот фрагмент update.sql:
...
CREATE TABLE SCHEMA_HERE.TABLE1A (total_pk INT8 NOT NULL, form_fk INT8, .....etc);
INSERT INTO SCHEMA_HERE.TABLE1A (ID, FORM_ID, ...etc)
...
Я хотел бы создать файл, в котором все типы данных соответствуют целевой базе данных, то есть, что я хочу создать. Я могу написать простой парсер, который заменяет типы данных, но это неправильное решение - может быть много базы данных.
Возможно ли генерировать вывод XML/SQL с типами данных целевой базы данных?
Возможно, существует опция, позволяющая генерировать выходные данные с помощью «абстрактных» типов данных? Т.е. с типами данных, которые не находятся в реальных базах данных, например, вместо INT8
- абстрактный целочисленный тип данных и т. Д.
Буду очень признателен за информацию. Спасибо всем.