Мне несколько раз удавалось отражать структуры таблиц от одного rdbms к другому. Но не сегодня. Приведенный ниже код заполняет объект метаданных из Postgres, а затем пытается воссоздать его из Oracle. Но sql, отправленное на Oracle, находится на диалекте Postgres, что в этом случае правильно не работает с «ORA-00907: отсутствует правая скобка». Думаю, я делал это много раз раньше, и SQLAlchemy прекрасно переводит синтаксис Oracle. Что я делаю не так, чем еще можно это объяснить? Postgres - 11,2, Oracle - 18,9, Python - 3,7,4, cx_ Oracle - 7.0.0, psycopg2 - 2.7.6.1.
С уважением, Нильс
#create table cookies
#(
# cookie_id bigserial,
# cookie_name varchar(50),
# cookie_recipe_url varchar(255),
# cookie_sku varchar(55),
# quantity integer,
# unit_cost numeric(12,2),
# constraint cookies_pkey primary key (cookie_id)
#);
from sqlalchemy import MetaData, create_engine
postgrese = create_engine("postgresql+psycopg2://pgd01:5432/db01",echo=True)
oraclee = create_engine("oracle+cx_oracle://@ora01", echo=True, max_identifier_length=128)
metadata = MetaData()
metadata.reflect(postgrese)
metadata.create_all(oraclee)