Простое моделирование существующей схемы базы данных SQL Server в Python

1

Я хочу написать несколько небольших инструментов для управления содержимым таблицы для существующей базы данных SQL Server 2005. У меня есть несколько десятков таблиц ссылочного контента для приложения, которое развернуто во многих клиентских базах данных (часто для разных версий схемы), и я хочу создать несколько скриптов python для экспорта, импорта, разложения и объединения этого содержимого в разных версиях при сохранении ссылочная целостность. Есть ли простой способ автоматически генерировать классы python для моделирования этого содержимого для каждой версии базы данных? Я в первую очередь разработчик sql с небольшим количеством опыта python и java, поэтому чем проще, тем лучше.

EDIT: Забыл упомянуть, что мне не только хотелось бы создать модель, но и легко заполнить объекты из существующего db.

Теги:
sql-server
orm

2 ответа

1

SqlAlchemy может на самом деле помочь вам. Вы можете посмотреть здесь http://www.sqlalchemy.org/docs/05/ormtutorial.html

  • 0
    Это похоже на то, что мне нужно: sqlalchemy.org/docs/05/metadata.html#reflecting-tables , но, похоже, работает только для живого соединения с БД. Есть ли способ сохранить определение таблицы в файл после отражения от БД. Мне нужно иметь возможность хранить объекты для более чем одной версии схемы одновременно, а затем проверять работающую базу данных, чтобы узнать, из какой версии импортировать / экспортировать.
  • 0
    Рассмотрите возможность хранения информации о версии схемы в самой базе данных.
0

В Django есть документация по использованию его с устаревшими базами данных, но вам все равно придется обрабатывать такие вещи, как определение отношений самостоятельно.

  • 0
    Кажется, Django вращается вокруг создания веб-приложения, которое является излишним для моих целей (сейчас мне даже не нужен пользовательский интерфейс). Можно ли извлечь только функциональность базы данных (создать модель, прочитать из БД, сохранить в БД) без необходимости настройки полного веб-проекта?
  • 0
    Если вам не нужна веб-функциональность, не беспокойтесь о Django. Вы можете использовать ORM самостоятельно, но есть и лучше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню