Syntaxe
D’après
https://git.spip.net/spip-contrib-outils/spip-cli/commit/f78649d4ccfcceec25cfa099e297afdaec93fd13
permet de convertir facilement un site SQLite en MySQL :
- le script cree la base mysql en se basant sur les declarations des plugins
- ensuite la structure de la base mysql et la structure de la base sqlite sont comparees
- les cas connus (champ oembed pas declare, vieux champs extras...) sont repares a la volee
- pour les autre tables ou champ manquant il faut reactiver les plugins necessaires ou les creer a la main, ou les ignorer avec l’option —ignore-missing
- une fois la structure mysql OK, le script copie toutes les données de sqlite vers mysql
- et le tour est joué
spip sql:convert:tomysql -h
Description :
Convertit un site vers mysql (utile pour un site en sqlite)
Usage :
sql:convert:tomysql [options]
Options :
—connect[=CONNECT] Le nom du connect MySQL a utiliser
-i, —ignore-missing Ignorer les champs et tables manquantes dans la base MySQL
-h, —help Display help for the given command. When no command is given display help for the list command
-q, —quiet Do not output any message
-V, —version Display this application version
—ansi|—no-ansi Force (or disable —no-ansi) ANSI output
-n, —no-interaction Do not ask any interactive question
-v|vv|vvv, —verbose Increase the verbosity of messages : 1 for normal output, 2 for more verbose output and 3 for debug
Exemple d’utilisation
J’ai un site SPIP dont la base est en SQLite
Pour le passer en SQL via SPIP-Cli
- j’installe SPIP-Cli
- je crée ma base SQL spip_toto dans phpMyAdmin par exemple
- je crée un ficher de connection à cette base. Par ex. config/connect_new.php
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE',true);
$GLOBALS['spip_connect_version'] = 0.8;
spip_connect_db('localhost','','root','motdepasse','spip_toto','mysql', 'spip','','utf8');
?>
- je lance ma commande spip-cli
spip sql:convert:tomysql --connect=connect_new
Ca marche :)
Ensuite je peux brancher le SQL au lieu de SQLite en renommant config/connect_new.php par config/connect.php