Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
Посоветуйте пожалуйста, вопрос скорее всего банальный, просто я никогда особенно не сталкивался с Постгресом. Есть заготовка таблиц в MySQL - просто структура таблиц, без данных. Нужно создать такую же структуру в Постгресовской базе. Я перепробовал уйму способов - через SQL-файл, сгенерированный PHPMyAdmin'ом (много раз его правил, кавычки разные убирал и MySQL-специфичную информацию - выдает ошибку в синтаксисе), с помощью EMS SQL Manager и утилит миграции этой же фирмы (через разные промежуточные форматы - XML, Excel etc. - создаются пустые файлы в любом случае - данных ведь нет, только пустые таблицы). Таблиц очень много, и не хотелось бы вручную их создавать. Спасибо заранее за любые конструктивные советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 16:18 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 16:37 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
Самый простой вариант: дамп MySQL -> реверс (например, из Sybase Power Designer) -> необходимые изменения -> ddl PostgreSQL -> необходимые изменения -> создание базы данных из ddl PostgreSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 16:45 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
Простите великодушно, а что такое реверс и ddl? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 18:33 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
> что такое реверс и ddl? Reverse engine в данном случае - преобразование структуры данных в ER диаграмму. Это стандартная фича PD (впрочем, не только PD). DDL - Data Definition Language - инструкции SQL [конкретной СУБД], sql-скрипт. Немного подробнее. Для того, чтобы преобразовать структуру данных одной СУБД в структуру данных другой СУБД, проще всего воспользоваться некой общей для этих СУБД моделью. В данном случае ER модель - наиболее простой путь. Особенность (и корректность, естественно) такого преобразования заключаются в полноте описания особенностей конкретных СУБД и поддержкой этих особенностей используемым ПО (в данном случае - PD). Перенести структуру данных MySQL в PostgreSQL с помощью case средств корректно вряд ли получится (за исключением самых примитивных случаев). Именно поэтому полученная схема нуждается в [как правило, не слишком сложной] доработке. Замечания: для работы дамп imho удобнее, чем прямое соединение, - на качестве преобразования в ER это не отражается; последние (по описанной цепочке) изменения удобнее делать в текстовом редакторе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 19:36 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
my2pg , и не слушай этих виндузятников. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 07:09 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
Что точно то точно. Я бы руками переделал. Если количество таблиц < 100. Очень полезный опыт будет. может скрипты полезные в результате напишешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 12:21 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. Я нашел как минимум 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 13:50 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
int в пг фиксированный. если конвертить в пг, то int(11) выглядел бы как numeric(11), правда вот был бы смысл тот же не знаю, с mysql давно общался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 14:08 |
|
||
|
Перенести структуру таблиц из MySQL в Postgres
|
|||
|---|---|---|---|
|
#18+
mysqldump | /usr/home/dumper/my2pg.sh | psql -U dumper -h nemo myrawbase Можно фильтр и на перле писать но IMHO это работает чуть медленнее sed. Чудесненько все обходится безовсяких CASE которые кстати еще денег просют и чего надо не делают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 15:06 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33811454&tid=2006274]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 271ms |
| total: | 404ms |

| 0 / 0 |
