mig

Скріншот програми:
mig
Дані програми:
Версія: 0.0.6
Дата завантаження: 20 Feb 15
Розробник: mig contributors
Ліцензія: Безкоштовно
Популярність: 73

Rating: 3.0/5 (Total Votes: 2)

МіГ ([M] ediaGoblin [я] S [G] Reat!) Був написаний Крістофер Алан Веббер для GNU MediaGoblin.
З тих пір, Joar Wandborg добув необхідне функціональних можливостей, від MediaGoblin і в окремому пакеті, який'S README ви зараз читаєте.
Init міграції
Запускати mig.run (двигун, назва моделі, міграції) або додати таблицю mig.models.MigrationData вручну.
Примітка
Якщо ваша база даних вже заселені і немає міграція версія рядки в таблиці MigrationData, mig.run () не буде виконана.
Якщо у вас вже є заповненою бази даних ви повинні створити MigrationData (ім'я = 'migrations_handle ", версія = 0) рядок для ваших переміщень в таблиці MigrationData, в іншому випадку МіГ постараюся, щоб почати базу даних.
Приклад налаштування
Створити міграції
.. Код-блок :: Python
І NBSP; & NBSP; & NBSP; від МіГ імпорту RegisterMigration
І NBSP; & NBSP; & NBSP; від SQLAlchemy імпортувати метадані, таблиць, стовпців Integer, Unicode, DateTime,
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ForeignKey
І NBSP; & NBSP; & NBSP; Міграції = {}
І NBSP; & NBSP; & NBSP; RegisterMigration (1, міграція населення)
І NBSP; & NBSP; & NBSP; Def create_site_table (db_conn):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; метадані = метаданих (BIND = db_conn.bind)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; user_table = Table ("користувач", метадані, автозавантаження = True,
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; autoload_with = db_conn.bind)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; site_table = Table ("сайт", метадані,
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Колонка ('ID', Integer, primary_key = True),
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Колонка ('домен', Unicode),
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Колонка ('owner_id ", Integer, ForeignKey (user_table.columns [' ID '])))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; site_table.create ()
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; db_conn.commit ()
І NBSP; & NBSP; & NBSP; RegisterMigration (2, міграції)
І NBSP; & NBSP; & NBSP; Def item_add_site_id (db_conn):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; метадані = метаданих (BIND = db_conn.bind)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; item_table = Table ("пункт", метадані, автозавантаження = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; site_table = Table ("сайт", метадані, автозавантаження = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; site_id_col = Колонка ('Site_ID', число, ForeignKey (
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; site_table.columns ['ID']))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; site_id_col.create (item_table)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; db_conn.commit ()
Реєстрація моделей
.. Код-блок :: Python
І NBSP; & NBSP; & NBSP; імпорт Bcrypt
І NBSP; & NBSP; & NBSP; від DateTime DateTime імпорту
І NBSP; & NBSP; & NBSP; від мігрувати імпорту ревізії
І NBSP; & NBSP; & NBSP; від talkatv дБ імпорту
І NBSP; & NBSP; & NBSP; клас User (db.Model):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ID = db.Column (db.Integer, primary_key = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Ім'я користувача = db.Column (db.String (60), унікальний = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Email = db.Column (db.String (255), унікальний = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; пароль = db.Column (db.String (60))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; НЕ Def __init __ (сам, ім'я користувача, адресу електронної пошти, пароль = None, OpenID = None):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.username = ім'я користувача
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.email = E-mail
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Якщо пароль:
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.set_password (пароль)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Якщо OpenID:
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.openid = OpenID
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def __repr __ (Я):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; повернення '<Користувач {0}>'. Формат (self.username)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def set_password (я, пароль):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.password = bcrypt.hashpw (пароль, bcrypt.gensalt ())
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def check_password (я, пароль):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; повернутися bcrypt.hashpw (пароль, self.password) == self.password
І NBSP; & NBSP; & NBSP; клас OpenID (db.Model):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ID = db.Column (db.Integer, primary_key = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; URL = db.Column (db.String ())
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; створено = db.Column (db.DateTime)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; user_id = db.Column (db.Integer, db.ForeignKey ('user.id'))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Користувач = db.relationship ("Користувач",
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; backref = db.backref («openids", ледачий = "динамічних"))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def __init __ (сам, користувач, URL):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.created = DateTime.UtcNow ()
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.user = користувач
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.url = URL
І NBSP; & NBSP; & NBSP; клас Item (db.Model):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ID = db.Column (db.Integer, primary_key = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; назва = db.Column (db.String ())
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; URL = db.Column (db.String (), унікальний = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; створено = db.Column (db.DateTime)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; site_id = db.Column (db.Integer, db.ForeignKey ('site.id'))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; сайт = db.relationship ("місця",
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; backref = db.backref («предмети», ледачий = "динамічних"))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; НЕ Def __init __ (сам, URL, назва, сайт = None):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; якщо сайті:
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.site = сайті
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.title = назва
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.url = URL
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.created = DateTime.UtcNow ()
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def __repr __ (Я):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; повернення '<Елемент {0} ({1})>' Формат. (
                    self.url,
                    self.site.owner.username якщо self.site ще немає)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def as_dict (само):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; мені = {
                    "ID": self.id,
                    Назва роботи: self.title,
                    "URL": self.url,
                    "Створено": self.created.isoformat ()}
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; якщо self.site:
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; me.update ({«власник»: self.site.owner.id})
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; повернутися мене
І NBSP; & NBSP; & NBSP; клас по сайту (db.Model):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ID = db.Column (db.Integer, primary_key = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; створено = db.Column (db.DateTime)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; домен = db.Column (db.String)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; owner_id = db.Column (db.Integer, db.ForeignKey ('user.id'))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Власник = db.relationship ("Користувач",
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; backref = db.backref («Сайти», ледачий = "динамічних"))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def __init __ (сам, власник домену)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.owner = власник
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.domain = домен
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.created = DateTime.UtcNow ()
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def __repr __ (Я):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; повернення '<{0} ({1}) Сайт>' Формат. (
                    self.domain,
                    self.owner.username)
І NBSP; & NBSP; & NBSP; клас Коментар (db.Model):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ID = db.Column (db.Integer, primary_key = True)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; створено = db.Column (db.DateTime)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Текст = db.Column (db.String ())
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; item_id = db.Column (db.Integer, db.ForeignKey ('item.id'))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; пункт = db.relationship ('Item',
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; backref = db.backref ("Коментарі", ледачий = "динамічних"))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; user_id = db.Column (db.Integer, db.ForeignKey ('user.id'))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Користувач = db.relationship ("Користувач",
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; backref = db.backref ("Коментарі", ледачий = "динамічних"))
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def __init __ (сам, пункт, користувач, текст):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.item = пункт
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.user = користувач
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.text = текст
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; self.created = DateTime.UtcNow ()
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def __repr __ (Я):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; повернення '<Коментар ({1}) {0}>' Формат. (
                    self.text [: 25] + ('...' If Len (self.text)> 25 Else ''),
                    self.user.username)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def as_dict (само):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; мені = {
                    "ID": self.id,
                    "Пункт": self.item.id,
                    "User_id": self.user.id,
                    "Ім'я користувача": self.user.username,
                    'Текст': self.text,
                    "Створено": self.created.isoformat ()}
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; повернутися мене
І NBSP; & NBSP; & NBSP; МОДЕЛІ = [
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Користувач,
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Коментар,
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Пункт,
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; OpenID,
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Сайту]
Запуск міграції
.. Код-блок :: Python
І NBSP; & NBSP; & NBSP; від МіГ імпорту перспективі
І NBSP; & NBSP; & NBSP; від mig.models імпортувати MigrationData
І NBSP; & NBSP; & NBSP; від YourApp дБ імпорту
І NBSP; & NBSP; & NBSP; від yourapp.models імпортувати моделі
І NBSP; & NBSP; & NBSP; від yourapp.migrations імпортних міграції
І NBSP; & NBSP; & NBSP; Def check_or_create_mig_data ():
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; якщо не db.engine.dialect.has_table (db.session, "mig__data '):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; # Створення таблиць міграції
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; MigrationData .__ стіл __. Create (db.engine)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; # Створення першого міграції, так що мить не ініціалізувати.
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; міграція = MigrationData (ім'я = і '__ main__ ", версія = 0)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; db.session.add (міграція)
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; db.session.commit ()
І NBSP; & NBSP; & NBSP; якщо __name__ == '__main__':
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; якщо db.engine.dialect.has_table (db.session, "користувач"):
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; # DB вже заповнений, перевірте міграції є активними,
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; # В іншому випадку створити таблицю міграції даних
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; check_or_create_mig_data ()
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Run (db.engine, і '__ main__ ", МОДЕЛІ, міграції)

Вимоги

  • Python

Схожі програми

Metabase
Metabase

11 May 15

DbNinja
DbNinja

17 Feb 15

firebirdsql
firebirdsql

20 Feb 15

ssqlfs
ssqlfs

11 May 15

mig

Коментар не знайдено
додати коментар
Включіть картинки!