Скрипт преобразования схемы SQL для MySQL, PostgreSQL, SQLite… - PullRequest
1 голос
/ 01 ноября 2009

Я ищу скрипт, который позволил бы мне определить мои отношения с базой данных в простом файле модели и иметь возможность преобразовать это определение схемы в явные форматы для MySQL, PostgreSQL и SQLite. Формат может быть аналогичен определениям, которые вы бы делали в activerecord, поэтому, если все не получится, я каким-то образом пойду с AR, если смогу справиться с этим. Но, возможно, есть еще лучшее решение проблемы.

Основная проблема на данный момент связана с полями автоинкремента. Я не делаю слишком сложных вещей в моей схеме БД.

Ответы [ 3 ]

1 голос
/ 01 ноября 2009

SQL :: Translator - отличный инструмент для этого. Возможно, вам придется написать некоторый код внешнего интерфейса, чтобы понять, какой формат исходного файла вы имеете в виду, и превратить его в объект схемы (или, по крайней мере, в представление YAML одного), но как только это будет сделано, sqlt может сделать все остальное. 1003 *

1 голос
/ 01 ноября 2009

Администраторы баз данных иногда имеют инструмент моделирования данных, который поддерживает документирование модели базы данных и может создавать (и поддерживать) сценарий базы данных с различными синтаксисами механизма базы данных.

Одним из таких (менее дорогих) примеров является toad modeler . Более дорогие инструменты могут стоить тысячи долларов - ERWin приходит на ум.

Но вы, кажется, ищете что-то более простое. И я думаю, что у вас уже есть свой ответ - ActiveRecord будет делать это очень хорошо (и даст вам миграции во время этого). Модели Джанго - еще одна возможность.


Редактировать:

Я не парень из Active Record ... Но в Django вы бы сделали ./manage.py sqlall <appname> - это вылилось бы во все операторы create, в том числе и для индексов.

В вашем случае <appname>, вероятно, будет единственным приложением, которое вам нужно. Единственные два файла, к которым вы когда-либо прикасаетесь, это settings.py (для определения конфигурации базы данных) и <appname>/models.py (для определения моделей базы данных).

Учебное пособие по Django будет хорошим началом; особое внимание создание моделей .

Надеюсь, это поможет.


Редактировать 2:

Хммм ... Ваше упоминание о "Free" сделало меня "... как в пиве", и я погуглил "моделирование данных с открытым исходным кодом". Нашел это:

http://www.sqlpower.ca/page/architect

Я ничего не знаю об этом, кроме того, что он утверждает, что он работает с PostgreSQL и MySQL.

Я думаю, стоит взглянуть - гораздо лучше для ваших целей, чем пытаться освоить слой ORM в Django. Особенно, если это действительно бесплатно. (Собственно, я собираюсь проверить это сам).

0 голосов
/ 13 декабря 2009

Для общей информации: метод, который я сейчас выбрал для использования, - это библиотека Ruby Datamapper , которую я нашел проще в настройке, чем большинство других решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...