Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][SF4] Problem z wykonaniem komendy z konsoli, Problem z wykonaniem php bin/console doctrine:fixtures:load
damianooo
post 19.03.2020, 23:10:07
Post #1





Grupa: Zarejestrowani
Postów: 459
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


W Symfony 4.4.2 po wykonaniu komendy: sudo php bin/console doctrine:fixtures:load otrzymuje komunikat:

  1. There are no commands defined in the "doctrine:fixtures" namespace.
  2.  
  3. Did you mean one of these?
  4. doctrine
  5. doctrine:cache
  6. doctrine:database
  7. doctrine:generate
  8. doctrine:mapping
  9. doctrine:migrations
  10. doctrine:query
  11. doctrine:schema
  12.  
  13. You may be looking for a command provided by the "DoctrineFixturesBundle" which is currently not installed. Try running "composer require
  14. doctrine/doctrine-fixtures-bundle --dev".


mimo tego ze w pliku composer.json mam:

  1. "require": {
  2. "php": "^7.1.3",
  3. "ext-ctype": "*",
  4. "ext-iconv": "*",
  5. "doctrine/doctrine-fixtures-bundle": "^3.3",


a takze w pliku conig/bundles.php tak:

  1. Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
  2. Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true],
  3. ];


jednak co ciekawe jak wykonam komende
  1. sudo php bin/console

to nie widze na liscie dotepnych komend komendy
  1. doctrine:fixtures


prosze o podpowiedz co jest nie tak bo juz nie mam pomyslow .
Go to the top of the page
+Quote Post
ohm
post 20.03.2020, 00:29:21
Post #2





Grupa: Zarejestrowani
Postów: 535
Pomógł: 128
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


bin/console --env=dev?
Go to the top of the page
+Quote Post
damianooo
post 20.03.2020, 20:38:40
Post #3





Grupa: Zarejestrowani
Postów: 459
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


---------------------------------

Ok wiem co bylo nie halo.
W .env mialem ustawione:

APP_ENV=prod

zmienilem na

APP_ENV=dev

i jest ok .

Poprzestawialem cos ostatnio jak dodalem drugi plik .env

Nie zajarzylem chyba rozdzialu z testami jednostkowymi dla metod dostepowych do bazy danych
https://symfony.com/doc/4.4/testing/database.html

chcialem skonfigurowac druga baze aby testy dla tych metod dzialaly.

Wiesz moze jak to powinno wygladac ?

Ten post edytował damianooo 20.03.2020, 21:39:20
Go to the top of the page
+Quote Post
Pyton_000
post 21.03.2020, 11:33:59
Post #4





Grupa: Zarejestrowani
Postów: 7 888
Pomógł: 1384
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Zrób sobie plik .env.test.local i tam skopiuj sobie env do bazy ustawiając odpowiednio
Go to the top of the page
+Quote Post
damianooo
post 26.03.2020, 20:47:38
Post #5





Grupa: Zarejestrowani
Postów: 459
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


ok to zrobilem tak ze mam teraz takie dwa pliki:

.env
i
.env.test.local

w .env mam takie ustawienia:
  1. APP_ENV=dev
  2. DATABASE_URL=mysql://newuser:password@127.0.0.1:3306/baza1


a w .env.test.local takie:
  1. APP_ENV=dev
  2. DATABASE_URL=mysql://newuser:password@127.0.0.1:3306/baza2


wykonujac ponizsze polecenia zawsze odwolanie jest do konfiguracji z pliku .env

  1. php bin/console doctrine:database:drop --force
  2. php bin/console doctrine:database:create
  3. php bin/console doctrine:schema:update --force
  4. php bin/console doctrine:fixtures:load


jak zrobic aby czytal konfiguracje z pliku .env.test.local ?

Chcialem zrobic tak zeby dane dla testow jednostkowych byly w drugiej bazie danych
Mozliwe ze nie rozumiem idei opisanej tutaj:
https://symfony.com/doc/4.4/testing/database.html
w rozdziale:
"Configuring a Database for Tests"
Go to the top of the page
+Quote Post
Pyton_000
post 26.03.2020, 21:54:06
Post #6





Grupa: Zarejestrowani
Postów: 7 888
Pomógł: 1384
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Główny config jest w .env.

W .env.test.local nadpisujesz tylko te rzeczy które są inne. Wywal te APP_ENV z test.

Żeby odpalić jakieś polecenie z konsoli w konkretnym środowisku musisz dodać --env=test

Testy phpunit mają swój plik phpunit.xml.dist i to w tym pliku jest APP_ENV
Kod
<server name="APP_ENV" value="test" force="true" />


Jak odpalisz sobie phpunit to on będzie odpalany w środowisku test zgodnie z tym co jest w phpunit.xml.dist
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2020 - 13:37