Olá, leia toda a documentação incluída aqui em https://laravel.com/docs/5.4/migrations .
Existe uma maneira de migrar um determinado arquivo de migração (apenas 1 migração), porque agora toda vez que há uma alteração eu uso php artisan migrate:refresh
e todos os campos estão sendo redefinidos.
laravel
migration
laravel-5.4
Martney Acha
fonte
fonte
você deve adicionar o caminho para o seu arquivo de migração para atualizar apenas esta tabela e executar
fonte
Basta olhar para a
migrations
tabela em seu banco de dados, haverá uma lista de nome do arquivo de migração e valor do número do lote.Suponha que você tenha a seguinte estrutura,
id migration batch 1 2014_10_12_000000_create_users_table 1 2 2014_10_12_100000_create_password_resets_table 1 3 2016_09_07_103432_create_tabel_roles 1
Se você quiser apenas reverter a
2016_09_07_103432_create_tabel_roles
migração, altere o valor do lote de migração para 2, que é o maior entre todos, e execute o seguinte.Aqui, apenas a tabela com valor de lote 2 será revertida. Agora, faça alterações nessa tabela e execute o seguinte comando do console.
O valor do lote na
migrations
tabela define a ordem das migrações. quando você reverte, as migrações que são mais recentes ou têm o valor de lote mais alto são revertidas primeiro e depois em outras. Portanto, você pode alterar o valor no banco de dados e, em seguida, reverter um arquivo de migração específico.Embora não seja uma boa ideia alterar o número do lote todas as vezes devido ao relacionamento entre a estrutura da tabela, podemos usar este caso para alguns casos em que o rollback de uma única tabela não viola a integridade entre as tabelas.
Espero que você entenda.
fonte
se você usar a guia para preenchimento automático
php artisan migrate --path='./database/migrations/2019_12_31_115457_create_coworking_personal_memberships_table.php'
fonte
Você pode executar um comando como este
php artisan migrate --path=/database/migrations/2020_04_10_130703_create_test_table.php
fonte
Você precisa colocar o (s) arquivo (s) em um novo diretório (ex: selecionado) e depois aplicar
se você precisar de rollback:
Nota:
isso irá reverter e, em seguida, migrar todos os arquivos de migração no diretório padrão (/ database / migrations)
fonte
Você verá a opção:
A propósito, você provavelmente pode indicar a pasta raiz do arquivo que deseja migrar:
Ou você pode criar uma nova pasta nas migrações e, em seguida, migrar todos os arquivos de migração que quiser dentro dela:
fonte
Só queria postar outra solução, que acho que vale a pena mencionar.
Ele migrará apenas a mesa de que você precisa e não afetará mais nada
fonte
Se você deseja criar uma mesa específica. Você pode usar este código. Ele funciona para versões laravel (5.x).
fonte
Você só pode reverter:
https://laravel.com/docs/5.4/migrations#rolling-back-migrations
Você pode especificar quantas migrações reverter usando a opção 'step':
php artisan migrate:rollback --step=1
Alguns truques estão disponíveis aqui:
Reverter uma migração específica no Laravel
fonte
Exclua a tabela e remova seu registro da tabela de migração.
Depois disso, basta executar a migração novamente:
fonte
Correção - remova a barra antes do banco de dados
fonte
Migração de Tabela Específica
fonte
Ou você pode simplesmente deletar o nome do arquivo de migração de seu banco de dados, na tabela "migrações" e então executar: php artitsan migration
fonte
Você pode tentar usar a opção --path = para definir a subpasta específica que deseja executar e colocar migrações específicas lá.
Alternativamente, você precisaria remover referências e tabelas do banco de dados e tabelas de migração que não são ideais: /
fonte
Se você deseja criar outra tabela, basta criar um novo arquivo de migração. Vai funcionar.
Se você criar uma migração
users_table
com o nomeid, first_name, last_name
. Você pode criar um arquivo de migração comopublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('first_name',255); $table->string('last_name',255); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); }
Se você quiser adicionar outro campo como "status" sem migrar: atualize. Você pode criar outro arquivo de migração como "add_status_filed_to_users_table"
public function up() { Schema::table('users', function($table) { $table->integer('status'); }); }
E não se esqueça de adicionar a opção de reversão:
public function down() { Schema::table('users', function($table) { $table->dropColumn('status'); }); }
E quando você executa o migrate com
php artitsan migration
, basta migrar o novo arquivo de migração.Mas se você adicionar "status" arquivado no primeiro arquivo de migração (users_table) e executar a migração. Não é nada para migrar. Você precisa correr
php artisan migrate:refresh
.Espero esta ajuda.
fonte
instale este pacote
https://github.com/nilpahar/custom-migration/
e execute este comando.
fonte
php artisan migrate --path = / database / migrations / fileName.php
Basta seguir a instrução para executar este nome de arquivo de comunicação aqui deve ser o nome da sua tabela de migração Exemplo: php artisan migrate --path = / database / migrations / 2020_02_21_101937_create_jobs_table.php
fonte
Você só pode executar este comando em seu terminal
php artisan migrate --path=database/migrations/2020_10_01_164611_create_asset_info_table.php
Após as migrações, você deve colocar o nome do arquivo específico. ou se você tiver alguma pasta dentro da migração, basta adicionar o nome dessa pasta após a migração.
Como isso
php artisan migrate --path=database/migrations/yourfolder/2020_10_01_164611_create_asset_info_table.php
Espero que isso ajude você um pouco. Happy Coding.
fonte
Você pode usar isso.
-> https://packagist.org/packages/sayeed/custom-migrate
-> https://github.com/nilpahar/custom-migration/
isso é muito fácil de usar
fonte
Primeiro você deve fazer os seguintes comandos:
Passo 1:
Passo 2:
Sua tabela estará de volta no banco de dados.
fonte
php artisan migration:refresh
serve o mesmo.