mig

Software captura de pantalla:
mig
Detalles de software:
Versión: 0.0.6
Fecha de carga: 20 Feb 15
Promotor: mig contributors
Licencia: Libre
Popularidad: 13

Rating: nan/5 (Total Votes: 0)

mig ([M] ediaGoblin [i] s [G] reat!) Fue escrito por primera vez por Christopher Allan Webber para GNU MediaGoblin.
Desde entonces, Joar Wandborg ha extraído lo esencial de la funcionalidad de MediaGoblin y en un paquete separado que es README que está leyendo.
migraciones Init
De cualquier mig.run run (motor, el nombre, los modelos, las migraciones) o agregue la tabla mig.models.MigrationData manualmente.
Nota:
Si su base de datos ya está poblada y no hay versión migración filas de la tabla MigrationData, mig.run () fallará.
Si ya tiene una base de datos poblada tendrás que crear un MigrationData (name =, versión = 0 'migrations_handle') fila para sus migraciones en la tabla MigrationData, de lo contrario mig tratará de iniciar la base de datos.
Ejemplo de configuración
Crear migración
.. Code-block :: python
& Nbsp; & nbsp; & nbsp; desde RegisterMigration importación mig
& Nbsp; & nbsp; & nbsp; de los metadatos sqlalchemy importación, Tabla, Columna, Integer, Unicode, DateTime,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ForeignKey
& Nbsp; & nbsp; & nbsp; MIGRACIONES = {}
& Nbsp; & nbsp; & nbsp; RegisterMigration (1, MIGRACIONES)
& Nbsp; & nbsp; & nbsp; create_site_table def (db_conn):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; metadata = metadatos (bind = db_conn.bind)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; user_table = Tabla ("usuario", metadatos, autoload = 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 = Tabla ("sitio", metadatos,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Columna ('id', Integer, primary_key = True),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Columna ("dominio", Unicode),
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Columna ('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, MIGRACIONES)
& Nbsp; & nbsp; & nbsp; def item_add_site_id (db_conn):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; metadata = metadatos (bind = db_conn.bind)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; item_table = Tabla ('elemento', metadatos, autoload = True)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; site_table = Tabla ("sitio", metadatos, autoload = True)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; site_id_col = Columna ('site_id', Integer, 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 ()
Registrar los modelos
.. Code-block :: python
& Nbsp; & nbsp; & nbsp; bcrypt importación
& Nbsp; & nbsp; & nbsp; desde datetime datetime importación
& Nbsp; & nbsp; & nbsp; del conjunto de cambios de importación de migración
& Nbsp; & nbsp; & nbsp; desde talkatv db importación
& Nbsp; & nbsp; & nbsp; clase de usuario (db.Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; id = db.Column (db.Integer, primary_key = True)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; username = db.Column (db.String (60), único = True)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; email = db.Column (db.String (255), único = True)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; password = db.Column (db.String (60))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def __init __ (self, nombre de usuario, dirección de correo electrónico, contraseña = Ninguno, openid = None):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.username = nombre de usuario
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.email = email
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; si la contraseña:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.set_password (contraseña)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; si 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 __ (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; retorno ''. format (self.username)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; set_password def (self, contraseña):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.password = bcrypt.hashpw (contraseña, bcrypt.gensalt ())
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; check_password def (self, contraseña):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; volver bcrypt.hashpw (contraseña, self.password) == self.password
& Nbsp; & nbsp; & nbsp; OpenID clase (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; creado = 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; user = db.relationship ("Usuario",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; backref = db.backref ('OpenID', lazy = "dinámica"))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def __init __ (self, usuario, 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 = usuario
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.url = url
& Nbsp; & nbsp; & nbsp; clase 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; title = db.Column (db.String ())
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; url = db.Column (db.String (), único = True)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; creado = 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; sitio = db.relationship ('Sitio',
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; backref = db.backref ('artículos', lazy = "dinámica"))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def __init __ (self, url, título, lugar = None):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; si el sitio:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.site = sitio
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.title = título
& 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 __ (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; retorno " 'formato. (
                    self.url,
                    self.site.owner.username si self.site demás ninguno)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; as_dict def (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; me = {
                    'Id': self.id,
                    'Título': self.title,
                    'Url': self.url,
                    'Creado': self.created.isoformat ()}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; si self.site:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; me.update ({"propietario": self.site.owner.id})
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; devolverme
& Nbsp; & nbsp; & nbsp; clase del sitio (db.Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; id = db.Column (db.Integer, primary_key = True)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; creado = db.Column (db.DateTime)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; domain = 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; propietario = db.relationship ("Usuario",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; backref = db.backref ("sitios", lazy = "dinámica"))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def __init __ (self, propietario, de dominio):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.owner = propietario
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.domain = dominio
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.created = datetime.utcnow ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def __repr __ (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; retorno '' formato. (
                    self.domain,
                    self.owner.username)
& Nbsp; & nbsp; & nbsp; clase Comentario (db.Model):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; id = db.Column (db.Integer, primary_key = True)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; creado = db.Column (db.DateTime)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; text = 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; item = db.relationship ('Item',
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; backref = db.backref ('comentarios', lazy = "dinámica"))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; user_id = db.Column (db.Integer, db.ForeignKey ('user.id'))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; user = db.relationship ("Usuario",
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; backref = db.backref ('comentarios', lazy = "dinámica"))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def __init __ (self, artículo, usuario, texto):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.item = item
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.user = usuario
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.text = texto
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.created = datetime.utcnow ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def __repr __ (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; retorno '' formato. (
                    self.text [25] + ('...' si len (self.text)> 25 persona ''),
                    self.user.username)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; as_dict def (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; me = {
                    'Id': self.id,
                    'Elemento': self.item.id,
                    'User_id': self.user.id,
                    'Nombre de usuario': self.user.username,
                    "Texto": self.text,
                    'Creado': self.created.isoformat ()}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; devolverme
& Nbsp; & nbsp; & nbsp; MODELOS = [
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Usuario,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Comentario,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Item,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; OpenID,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Sitio]
Migraciones Ejecutar
.. Code-block :: python
& Nbsp; & nbsp; & nbsp; del plazo de importación mig
& Nbsp; & nbsp; & nbsp; desde mig.models importar MigrationData
& Nbsp; & nbsp; & nbsp; desde yourapp db importación
& Nbsp; & nbsp; & nbsp; desde yourapp.models MODELOS importación
& Nbsp; & nbsp; & nbsp; desde yourapp.migrations MIGRACIONES importación
& Nbsp; & nbsp; & nbsp; check_or_create_mig_data def ():
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; si no db.engine.dialect.has_table (db.session, 'mig__data'):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Crear tabla de migración
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Mesa MigrationData .__ __. Crear (db.engine)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Crear la primera migración, de manera que mig no init.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; migración = MigrationData (name = u '__ main__', versión = 0)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; db.session.add (migración)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; db.session.commit ()
& Nbsp; & nbsp; & nbsp; if __name__ == '__main__':
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; si db.engine.dialect.has_table (db.session, "usuario"):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # El DB ya está poblado, compruebe si las migraciones están activos,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # De lo contrario crear la tabla de datos de la migración
& 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, u '__ main__', MODELOS, MIGRACIONES)

Requisitos :

  • Python

Programas parecidos

sql++
sql++

2 Jun 15

DbNinja
DbNinja

17 Feb 15

nflgame
nflgame

20 Feb 15

Comentarios a la mig

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!