Yoyo-migrações é um utilitário de migração do esquema de banco de dados usando SQL simples e o DB-API.
O que faz-migrações Yoyo fazer?
Como os aplicativos de banco de dados evoluem, alterações no esquema de banco de dados são muitas vezes necessários. Estes geralmente podem ser escritas como scripts SQL pontuais contendo CRIAR / ALTER TABLE (embora qualquer script SQL ou python pode ser usado com yoyo-migrações).
Yoyo-migrações fornece uma ferramenta de linha de comando para a leitura de um diretório de tais scripts e aplicá-las ao seu banco de dados, conforme necessário.
suporte de banco de dados
Bancos de dados PostgreSQL, MySQL e SQLite são suportados.
Uso
Yoyo-migrações geralmente é invocado como um script de linha de comando.
Exemplos:
Leia todas as migrações de migrações de diretório e aplicá-los a um banco de dados PostgreSQL:
yoyo-migrate aplicar ./migrations/ postgres: // usuário: senha @ localhost / banco de dados
Migrações de reversão aplicada anteriormente para um banco de dados MySQL:
yoyo-migrate rollback ./migrations/ mysql: // usuário: senha @ localhost / banco de dados
Reaplicar (ie reverter em seguida, aplique novamente) migrações para um banco de dados SQLite no local /home/sheila/important-data.db:
yoyo-migrar sqlite reaplicar ./migrations/: ////home/sheila/important-data.db
Por padrão, yoyo-migrações iniciado em um modo interativo, pedindo-lhe para cada arquivo de migração antes de aplicá-lo, tornando-o fácil de escolher quais as migrações de aplicar e rollback.
O diretório migrações deve conter uma série de scripts de migração. Cada script de migração é um arquivo python (Py), contendo uma série de etapas. Cada passo deve incluir uma consulta migração e (opcionalmente) uma consulta rollback. Por exemplo:
#
# Arquivo: migrações / 0001.create-foo.py
#
passo (
& Nbsp; "CREATE TABLE foo (id INT, bar VARCHAR (20), PRIMARY KEY (id))",
& Nbsp; "DROP TABLE foo",
)
O nome do arquivo de cada arquivo (sem a extensão .py) é utilizado como identificador para cada migração. Migrações são aplicadas na ordem nome do arquivo, por isso é útil para nomear seus arquivos usando uma data (por exemplo, '20090115-xyz.py') ou com outro número de incrementar.
yoyo-migrate cria uma tabela em seu banco de dados de destino, _yoyo_migration, de acompanhar o que as migrações foram aplicadas.
Passos também pode levar um opcionais ignore_errors de argumento, que deve ser um dos aplicar, rollback, ou todos. Se no exemplo anterior a foo tabela já pode ter sido criado por um outro meio, poderíamos acrescentar ignore_errors = 'aplicar' para o passo para permitir que as migrações para continuar independentemente:
#
# File: 0001.create-foo.py
#
passo (
& Nbsp; "CREATE TABLE foo (id INT, bar VARCHAR (20), PRIMARY KEY (id))",
& Nbsp; "DROP TABLE foo",
& Nbsp; ignore_errors = 'aplicar',
)
Passos também pode ser python objetos que podem ser chamadas que levam uma conexão de banco de dados como seu único argumento. Por exemplo:
#
# File: 0002.update_keys.py
#
do_step def (conn):
& Nbsp; cursor = conn.cursor ()
& Nbsp; cursor.execute (
& Nbsp; "INSERT INTO sysinfo"
& Nbsp; "(osname, hostname, release, versão, arco)"
& Nbsp; "VALUES (% s,% s,% s,% s,% s% s)",
& Nbsp; os.uname ()
& Nbsp;)
passo (do_step)
Senha de segurança
Você normalmente especificar seu nome de usuário e senha do banco de dados como parte da string de conexão do banco de dados na linha de comando. Em uma máquina multi-usuário, outros usuários poderiam ver a sua senha de banco de dados na lista de processos.
A bandeira -p ou --prompt-password provoca yoyo-migre para solicitar uma senha, ignorando qualquer senha especificada na cadeia de conexão. Essa senha não estará disponível para outros usuários através de lista de processos do sistema.
Conexão seqüência caching
A primeira vez que executar o yoyo-migrar em um novo conjunto de migrações, você será perguntado se você deseja armazenar em cache a string de conexão do banco de dados em um arquivo chamado .yoyo-migrar no diretório migrações.
Esse cache é local para o diretório migrações, assim execuções subsequentes sobre o mesmo conjunto de migração não é necessário a string de conexão do banco de dados a ser especificado.
Isso economiza digitação, evita seu nome de usuário e senha do banco de dados mostrando nas listagens de processo e diminui o risco de acidentalmente executando yoyo-migrar o banco de dados errado (ou seja, re-executar uma entrada mais cedo yoyo-migrar no seu histórico de comando quando você se mudou para um diretório diferente).
Se você não quer que este arquivo de cache para ser usado, adicione o parâmetro --no-cache para as opções de linha de comando
O que é novo nesta versão:.
- Fix para mal administrada liberação 4.2.3
O que é novo na versão 4.2.1:
- Bugfix para versão anterior, que omitia arquivos críticos.
O que é novo na versão 4.1.6:
- Adicionado suporte do Windows (graças a Peter Shinners)
O que é novo na versão 4.1.5:
- Configurar manipuladores de registro para que as causas opção -v saída para ir para o console (graças a Andrew Nelis).
- `` opção de linha de comando -v`` já não recebe um argumento, mas pode ser especificado várias vezes em vez (ou seja, use `` -vvv`` em vez de `` -v3``). `` --verbosity`` Mantém o comportamento antigo.
O que é novo na versão 4.1.3:
- nome tabela de migração padrão mudou de volta para '_yoyo_migration'
Requisitos :
- Python
Comentários não encontrado