J'ai installé les migrations avec php artisan migrate:install
puis créé une migration avec la commande php artisan migrate:make create_teams_table
. Maintenant, j'essaie de les exécuter avec la commande suivante que j'ai créée conformément à la documentation officielle :
php artisan migrate --path=app/foo/migrations/2014_01_21_143531_create_teams_table.php
Cela me donne ce qui suit sur la console:
Rien à migrer.
La table migrations
de la base de données est vide et la nouvelle table n'est pas créée non plus. Je ne comprends pas pourquoi la documentation indique foo
dans le chemin. Que signifie foo
et d’où vient-il? D'abord, j'ai pensé que le chemin est mauvais à cause de la chose foo
et que je sais qu'il est relatif au dossier app
, je l'ai donc changé en app/database/migrations
mais cela ne fonctionne pas. J'ai aussi essayé beaucoup d'autres combinaisons de chemins, mais aucune d'entre elles n'a fonctionné.
Ai-je pris le mauvais chemin? Dans ce cas, la console ne devrait-elle pas afficher un autre type de message utile? Que signifie foo
? Comment puis-je exécuter ma migration?
Cette chose foo
est juste un exemple. Laravel recherchera les migrations à exécuter dans app/database/migrations
par défaut. Essayez de supprimer ce paramètre --path
et voyez si cela fonctionne.
Essaye ça:
Premier:
C:\xampp\htdocs\laravel-master>php artisan migrate:reset
Annulé: 2014_03_28_142140_user_table
Rien à restaurer.
seconde:
C:\xampp\htdocs\laravel-master>php artisan migrate
Migration: 2014_03_28_142140_user_table
vérifier la base de données.
En supposant que vous ayez un fichier de migration nommé my_migration.php
php artisan migrate --path=app/database/migrations/my_migration.php
aurait travaillé pour vous.
Ce qui m'a aidé:
php artisan config:cache
php artisan migrate
Le problème se pose si la table migrations
de la base de données est vide . La solution est donc d'ouvrir le bricoleur du compositeur
$ php artisan tinker
>>> Schema::drop('users')
>>> Schema::drop('password_resets')
>>> Schema::drop('orders')
>>> exit
php artisan migrate
Voici le résultat des commandes ci-dessus exécutées
nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate
Dans Connection.php, ligne 647: SQLSTATE [42S01]: La table ou la vue de base existe déjà: 1050 Table 'utilisateurs' alre ady existe (SQL: créer une table
users
(id
int non signée null clé primaire auto-incrémentée,name
varchar (255) non null,password
varchar (255) non nul ,remember_token
varchar (100) null,created_at
horodatage null,updated_at
horodatage null) jeu de caractères par défaut utf8mb4 collate utf8mb4_unicode_ci)Dans Connection.php, ligne 449: SQLSTATE [42S01]: La table ou la vue de base existe déjà: 1050 Table 'utilisateurs' existe déjà
nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate:rollback
Nothing to rollback.
nishanth@localhost:~/Desktop/html/hutch$ php artisan tinker
Psy Shell v0.8.17 (PHP 7.1.20-1+ubuntu16.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> Schema::drop('users')
=> null
>>> Schema::drop('password_resets')
=> null
>>> Schema::drop('orders')
=> null
>>> exit
Exit: Goodbye.
nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrating: 2018_08_18_071213_create_orders_table
Migrated: 2018_08_18_071213_create_orders_table
nishanth@localhost:~/Desktop/html/hutch$
Définissez également la méthode down()
, si elle n’existe pas.
.__ Sinon, ça va montrer
SQLSTATE [42S02]: Table ou vue de base introuvable: 1051 Table inconnue 'XYZ.ABC' (SQL: table de suppression
ABC
)
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('ABC');
}