резервное копирование хранимой процедуры или кода UDF через Python - PullRequest
0 голосов
/ 07 декабря 2011

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

Кто-нибудь знает, как сделать резервную копию кода хранимой процедуры, используя Python (sqlAlchemy, pyodbc или smth).

Я сделал это через C # перед использованием объектов управления SQL.

Заранее спасибо!

1 Ответ

1 голос
/ 07 декабря 2011

Нет простого способа получить доступ к SMO из Python (потому что нет общего решения для доступа к .NET из Python), поэтому я написал бы инструмент командной строки на C # и вызвал бы его из Python, используя модуль subprocess , Возможно, вы могли бы что-то сделать с ctypes, но я понятия не имею, возможно ли это.

Но, возможно, более важный вопрос заключается в том, почему вы хотите или должны это делать. Действительно ли структура вашей базы данных меняется так часто? Если это так, то, по-видимому, у вас нет реального контроля над ним, так какая польза от контроля источников в этом сценарии? Как вы развертываете изменения базы данных в первую очередь? Обычно изменения переходят от контроля источников к производству, а не наоборот, поэтому «основным» источником DDL (включая таблицы, индексы и т. Д.) Является SVN, а не база данных. Но вы не дали много информации о том, что вам действительно нужно для достижения, поэтому, возможно, есть веская причина для необходимости делать это в вашей среде.

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