Есть ли стандартный способ хранения схемы базы данных вне приложения Python? - PullRequest
1 голос
/ 12 мая 2010

Я работаю над небольшим приложением базы данных на Python (в настоящее время нацелено на 2.5 и 2.6) с использованием sqlite3.

Было бы полезно предоставить ряд функций, которые могли бы настроить базу данных и проверить, соответствует ли она текущей схеме. Прежде чем изобрести велосипед, я подумал, что поищу библиотеки, которые могли бы предложить нечто подобное. Я хотел бы иметь что-то похожее на миграции RoR. xml2ddl не предназначено для использования в качестве библиотеки (хотя ее можно использовать таким образом), и что более важно, не поддерживает sqlite3. Меня также беспокоит необходимость перехода на Python 3 в один прекрасный день, учитывая недостаток недавнего внимания к xml2ddl.

Есть ли другие инструменты, которые люди используют для этого?

Ответы [ 4 ]

3 голосов
/ 12 мая 2010

Вы можете найти схему таблицы sqlite3 следующим образом:

import sqlite3
db = sqlite3.connect(':memory:')
c = db.cursor()
c.execute('create table foo (bar integer, baz timestamp)')
c.execute("select sql from sqlite_master where type = 'table' and name = 'foo'")
r=c.fetchone()
print(r)
# (u'CREATE TABLE foo (bar integer, baz timestamp)',)
2 голосов
/ 12 мая 2010

Взгляните на SQLAlchemy migrate . Я не вижу проблем с использованием его только в качестве инструмента миграции, но сравнение конфигурации с текущим состоянием базы данных пока экспериментально.

1 голос
/ 12 мая 2010

Я использую это для синхронизации схем.

Имейте в виду, что добавляется таблица метаданных для отслеживания версий.

0 голосов
/ 12 мая 2010

Юг наиболее близок к миграции RoR. Но так же, как вам нужны Rails для этих миграций, вам нужно django , чтобы использовать юг.

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