Import a export databáze: Porovnání verzí

Z Freenetis Wiki
Přejít na: navigace, hledání
Řádek 22: Řádek 22:
 
  update users, (select password as newpass from users where login='vaslogin') u set password = u.newpass
 
  update users, (select password as newpass from users where login='vaslogin') u set password = u.newpass
 
Můžete tak snadněji testovat práva, protože takto všem uživatelům nastavíte vaše heslo podle vašeho loginu.
 
Můžete tak snadněji testovat práva, protože takto všem uživatelům nastavíte vaše heslo podle vašeho loginu.
 +
 +
=== Tip ===
 +
Výsledný SQL dotaz po importu databáze s produkčními daty na lokální vývojářský počítač:
 +
update config set value = 'http' where name = 'protocol';
 +
update config set value = 'localhost' where name = 'domain';
 +
update config set value = '/freenetis/' where name = 'suffix';
 +
update users, (select password as newpass from users where login='vaslogin') u set password = u.newpass
  
 
== Export dat z databáze ==
 
== Export dat z databáze ==

Verze z 9. 3. 2011, 13:27

Při vývoji je často potřeba pracovat s daty ostré databáze. Prázdná databáze po instalaci pro mnoho testování nestačí.

Import dat do databáze

Import SQL souboru s obsahem databáze je možné přes uživatelské rozhraní Phpmyadmina. Velké soubory pak ale často narazí na časový a datový limit PHP. Tyto limity je možné do jisté míry měnit v souboru

/etc/php5/apache2/php.ini

U velkých souborů toto nemusí stačit. Proto je snadné použití příkazové řádky. Stačí mít na počítači nekomprimovaný soubor SQL s daty k importu. Je potřeba mít na cílovém MySQL serveru prázdnou databázi. Pro import pak stačí v konzoli napsat

mysql -u username -p freenetis < freenetis.sql

Po importu databáze je nutné v Phpmyadminovi upravit některé položky v tabulce config. Jde o položky

  • protocol (na svém PC pro vývoj používáte typicky http místo https)
  • domain (na svém PC pro vývoj máte doménu localhost místo třeba freenetis.sdruzeni.net)
  • suffix (přípona za doménou, na serveru je to obvykle pouze /, pro localhost to je obvykle /freenetis/, záleží na vašem nastavení virtualhostu v Apachi)

Jestliže nenaběhne Freenetis na vaší lokální stránce (typicky localhost/freenetis) kvůli selhání upgradu databáze, pak navštivte v phpmyadminu tabulku config a upravte položku db_schema_version na číslo verze, které najdete v souboru application/upgrade_sql/upgrade_sql.php. Jestliže přihlašovací stránka naběhne, ale přihlášení selže na neznámé chybě, pak ověřte, jestli se celý import dat provedl správně. V případě větší databáze se import nemusí provést správně a některé tabulky se nestihnou vytvořit, například tabulka users klíčová pro přihlášení. V tomto případě používejte import výhradně přes příkazovou řádku a nikoli přes webové rozhraní phpmyadmina.

Tip

Po importu pusťte v phpmyadminovi následující SQL dotaz

update users, (select password as newpass from users where login='vaslogin') u set password = u.newpass

Můžete tak snadněji testovat práva, protože takto všem uživatelům nastavíte vaše heslo podle vašeho loginu.

Tip

Výsledný SQL dotaz po importu databáze s produkčními daty na lokální vývojářský počítač:

update config set value = 'http' where name = 'protocol';
update config set value = 'localhost' where name = 'domain';
update config set value = '/freenetis/' where name = 'suffix';
update users, (select password as newpass from users where login='vaslogin') u set password = u.newpass

Export dat z databáze

V příkazové řádce se pak export databáze do souboru provede obdobně:

mysqldump -u username -p freenetis > freenetis.sql