Bonjour
Je rencontre un soucis, je ne trouve pas dans la doc toutes les commandes utilisable avec cake migrations qui est livré avec cakephp 3.
Je cherche entre autre la fonction qui permet de reinitisaliser la base de donnée avec toutes les modifications deja faites.
car je viens de supprimer physiquement les tables.
Auriez vous une idées ?
# bin/cake migrations status
Welcome to CakePHP v3.3.2 Console
---------------------------------------------------------------
App : src
Path: /var/www/htdocs/src/
PHP : 5.6.24-0+deb8u1
---------------------------------------------------------------
using migration path /var/www/htdocs/config/Migrations
using seed path /var/www/htdocs/config/Seeds
using environment default
Status Migration ID Migration Name
-----------------------------------------
up 20160829153358 CreatePartners
up 20160829162631 CreateItems
up 20160829171648 CreateItemsPartners
up 20160829202912 CreateCountriesTable
up 20160829205354 Initial
Faker n'est pas indispensable pour utiliser le Seed de Migrations, mais pour générer des données aléatoires.
Tu fais tout simplement la commande composer require fzaninotto/faker
et ensuite pour l'utiliser il te suffira par exemple avant le nom de la classe d'ajouter : use Faker\Factory;
puis $faker = Factory::create();
.
est ce qu'il existe une sorte de composer search list ? comme pour apt-cache search sur Debian ?
Pour ce qui concerne les commandes disponibles avec Composer, il te suffit de regarder ici : Command-line interface / Commands - Composer et pour précisément ce que tu demandes : Command-line interface / Commands » search - Composer.
oui j'ai testé tout ce qui est indiqué ici.
http://book.cakephp.org/3.0/fr/migrations.html
J'aurais bien aimé avoir aussi la commande ALTER pour modifier les informations d'un champs
je vois pas le apport avec cake migrations, je pensais justement qu'on ai pas a devoir aller dans le code pour faire ses modifs.
Dans ma tete , Migration me permet de gerer en ligne de commande les changements .
Hors si maintenant je dois aller me taper des lignes a la main, je trouve du coup moins interessant.
mais c'est que j'ai dit, je ne veux pas ma palucher manuellement les change.
cette fonction, pour moi n'as aucun interet si je dois moi meme l'ecrire, autant que je me un script sql de mise a jour du champs.
c'est plus simple. que toutes les mic macs qui se sont crée avec Migration
Salut
Tu n'as p-e pas bien lu la doc car au début il te donne l'endroit ou tu doit chercher ta réponse :P
la doc
et
La réponse est ici :P
ca ne repond pas a la question. Les docs je vois pas comment appliquer en ligne de commande cake migration...
sinon c'est dans cette section la
ou tu trouve
./bin/cake bake migration CreateProducts name:string description:text created modified
les diférent type de migration
(/^(Create)(.)/) Crée la table spécifiée.
(/^(Drop)(.)/) Supprime la table spécifiée. Ignore les arguments de champ spécifié.
(/^(Add).(?:To)(.)/) Ajoute les champs à la table spécifiée.
(/^(Remove).(?:From)(.)/) Supprime les champs de la table spécifiée.
(/^(Alter)(.*)/) Modifie la table spécifiée. Un alias pour CreateTable et AddField.
Oui merci. Mais j´ai a nouveau le probleme pour seeder . il semble etre inclus mais je ne trouve pas comment alimenter les tables avec des fausses donnees . J´ai vu dans phinx qu´il fallait faker.
Bref tout ne tombe pas cuit dans le bec ...
en fait la migration de cake ne permet pas de remplir avec des donnée elle créer uniquement la structure tu peux éditer le fichier de migration et rajouter une logique pour remplire la table mais je ne pense pas qu'il y ai une commande pour remplir automatique
A je vien de voir la fonctionnalité dont tu parle seed
il disent bine de suivre a la lettre la doc de phinx
en plus cake a une fonction pour les créer tes seed
Exemple créer un seed pour la table Articles
bin/cake bake seed Articles
et pour l'executé c'est
./bin/cake migrations seed
Pour tout les seed
./bin/cake migrations seed --seed ArticlesSeed
pour un seed en particulier.
Vraiment cool comme fonction je ne la connaissai pas
Merci :D
bonjour @makamo
c'est ce que j'ai fait mais j'ai une erreur.
J'ai pas trop compris pourquoi pas ne marche pas simplement pas défaut ?
en tout cas c'est un peu genant du coup
== ItemsSeed: seeding
[PDOException]
SQLSTATE[HY000]: General error: 1364 Field 'name' doesn't have a default valu
e
seed [--seed SEED] [-p|--plugin PLUGIN] [-c|--connection CONNECTION] [-s|--source SOURCE]
en fait ca marche plus on moins, je viens juste de comprendre que cake migrations seed ne gere pas l'insertion de fausse données (fake)
si je regarde l'exemple de phinx ci dessous, je me demande comment verifier que Faker est installé dans cakephp ?
j'ai regardé dans Vendor, mais j'ai rien trouvé qui s'y rapporte, ni meme Migration.
Aussi peut etre dois je installer en plus faker ( https://github.com/gourmet/faker ) , mais lequel choisir , si on tape faker cakephp , il est difficile de savoir si c'est pour cakephp 2 ou 3.
use Phinx\Seed\AbstractSeed;
class UserSeeder extends AbstractSeed
{
public function run()
{
$faker = Faker\Factory::create();
$data = [];
for ($i = 0; $i < 100; $i++) {
$data[] = [
'username' => $faker->userName,
'password' => sha1($faker->password),
'password_salt' => sha1('foo'),
'email' => $faker->email,
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'created' => date('Y-m-d H:i:s'),
];
}
$this->insert('users', $data);
}
}
Oui d´accord mais comment etre sur que c´est cette librairie qu´il faut parmis des dizaines qui existe ?
Bonjour.
Faker n'étant pas une librairie indispensable pour faire fonctionner le Framework, elle ne fait pas partie des dépendances importées automatiquement lors de son installation.
Pour l'utiliser, il te suffit de l'importer via composer : Faker is a PHP library that generates fake data for you. et suivre la documentation de la librairie pour son utilisation.
Merci, en fait j'avais pas compris le lien entre tous les "composants". Donc CakePHP install Migration, mais pour utiliser Seed , il faut que je fasse un composer install faker.
Mais la ou je suis encore perdu, c'est que je ne sais pas comment il fait pour l'autoload ?
Est ce que composer l'a mis en place directement ? Est ce que je dois ajouter quelques chose en plus par rapport a cakephp ?
J'aurais quand meme apprécier qu'en faisant la generation des fichiers via seed, ils puissent remplir avec des fausses data.
est ce qu'il existe une sorte de composer search list ? comme pour apt-cache search sur Debian ?
Un gros merci, j'arrive un peu mieux a me reperer dans tout ca.
Petite question, en faisant la recherche j'ai vu donc fzaninotto/faker et gourmeet/faker avec comme description, for cakephp3.
J'aurais eut l'idée de prendre plutot le gourmet, est ce que tous les packets disponibles vont fonctionner a partir du moment ou ont l'install ?