powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Перенести структуру таблиц из MySQL в Postgres
10 сообщений из 10, страница 1 из 1
Перенести структуру таблиц из MySQL в Postgres
    #33797445
hydrargyrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посоветуйте пожалуйста, вопрос скорее всего банальный, просто я никогда особенно не сталкивался с Постгресом.
Есть заготовка таблиц в MySQL - просто структура таблиц, без данных. Нужно создать такую же структуру в Постгресовской базе. Я перепробовал уйму способов - через SQL-файл, сгенерированный PHPMyAdmin'ом (много раз его правил, кавычки разные убирал и MySQL-специфичную информацию - выдает ошибку в синтаксисе), с помощью EMS SQL Manager и утилит миграции этой же фирмы (через разные промежуточные форматы - XML, Excel etc. - создаются пустые файлы в любом случае - данных ведь нет, только пустые таблицы). Таблиц очень много, и не хотелось бы вручную их создавать.
Спасибо заранее за любые конструктивные советы.
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33797465
-me-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33797471
Самый простой вариант: дамп MySQL -> реверс (например, из Sybase Power Designer) -> необходимые изменения -> ddl PostgreSQL -> необходимые изменения -> создание базы данных из ddl PostgreSQL.
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33797531
hydrargyrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите великодушно, а что такое реверс и ddl?
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33797581
> что такое реверс и ddl?

Reverse engine в данном случае - преобразование структуры данных в ER диаграмму. Это стандартная фича PD (впрочем, не только PD). DDL - Data Definition Language - инструкции SQL [конкретной СУБД], sql-скрипт.

Немного подробнее. Для того, чтобы преобразовать структуру данных одной СУБД в структуру данных другой СУБД, проще всего воспользоваться некой общей для этих СУБД моделью. В данном случае ER модель - наиболее простой путь. Особенность (и корректность, естественно) такого преобразования заключаются в полноте описания особенностей конкретных СУБД и поддержкой этих особенностей используемым ПО (в данном случае - PD).

Перенести структуру данных MySQL в PostgreSQL с помощью case средств корректно вряд ли получится (за исключением самых примитивных случаев). Именно поэтому полученная схема нуждается в [как правило, не слишком сложной] доработке.

Замечания: для работы дамп imho удобнее, чем прямое соединение, - на качестве преобразования в ER это не отражается; последние (по описанной цепочке) изменения удобнее делать в текстовом редакторе.
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33810324
glebofff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
my2pg , и не слушай этих виндузятников. ;-)
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33811051
Алексей Ключников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что точно то точно.
Я бы руками переделал.
Если количество таблиц < 100.
Очень полезный опыт будет. может скрипты полезные в результате напишешь.
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33811381
hydrargyrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы. Я нашел как минимум 2 нормальных способа. Первый - использовать AdventNet SQLOne Console (триальная версия, дает переконвертировать до 50 SQL-запросов, но мне хватило), второй - сделать SQL-экспорт в phpmyadmin в режиме совместимости с Postgres. Однако Постгрес ругается на, казалось бы, странные вещи - скобку после INT, указывающую на длину типа. То же касается и varchar. Перестает ругаться только когда я убираю указание длины типа вообще. Мне кажется, тут дело не в конверторах, а в чем-то другом. Вот как это выглядит:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
ERROR:  syntax error at or near "(" at character  39 

В операторе:


CREATE TABLE sf_doc_data 
(
	id INT ( 11 ) NOT NULL , 
	doc_id INT ( 11 ) DEFAULT  '0' NOT NULL , 
	qc varchar ( 32 ) DEFAULT  '' NOT NULL , 
	data TEXT  NOT NULL , 
	cdate datetime  DEFAULT  '0000-00-00 00:00:00' NOT NULL , 
	user varchar ( 32 ) DEFAULT  '' NOT NULL , 
	PRIMARY KEY (id) 
)
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33811454
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
int в пг фиксированный. если конвертить в пг, то int(11) выглядел бы как numeric(11), правда вот был бы смысл тот же не знаю, с mysql давно общался...
...
Рейтинг: 0 / 0
Перенести структуру таблиц из MySQL в Postgres
    #33811659
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mysqldump | /usr/home/dumper/my2pg.sh | psql -U dumper -h nemo myrawbase
Можно фильтр и на перле писать но IMHO это работает чуть медленнее sed.
Чудесненько все обходится безовсяких CASE которые кстати еще денег просют и чего надо не делают.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Перенести структуру таблиц из MySQL в Postgres
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]