Install localizations into database

This commit is contained in:
Dennis Eichhorn 2019-10-05 20:09:38 +02:00
parent b49d285c36
commit b29362f55e
2 changed files with 112 additions and 0 deletions

View File

@ -18,6 +18,21 @@
"name": "language_native",
"type": "VARCHAR(100)",
"null": false
},
"language_639_2T": {
"name": "language_639_2T",
"type": "VARCHAR(2)",
"null": false
},
"language_639_2B": {
"name": "language_639_2B",
"type": "VARCHAR(3)",
"null": false
},
"language_639_3": {
"name": "language_639_3",
"type": "VARCHAR(3)",
"null": false
}
}
},
@ -325,6 +340,43 @@
}
}
},
"country": {
"name": "country",
"fields": {
"country_id": {
"name": "country_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"country_name": {
"name": "country_name",
"type": "VARCHAR(100)",
"null": false
},
"country_native": {
"name": "country_native",
"type": "VARCHAR(100)",
"null": false
},
"country_code2": {
"name": "country_code2",
"type": "VARCHAR(2)",
"null": false
},
"country_code3": {
"name": "country_code3",
"type": "VARCHAR(3)",
"null": false
},
"country_codenum": {
"name": "country_codenum",
"type": "INT(11)",
"null": false
}
}
},
"account": {
"name": "account",
"fields": {

View File

@ -14,6 +14,8 @@ declare(strict_types=1);
namespace Modules\Admin\Admin;
use phpOMS\DataStorage\Database\Connection\SQLiteConnection;
use phpOMS\DataStorage\Database\Query\Builder;
use phpOMS\Module\InstallerAbstract;
/**
@ -26,4 +28,62 @@ use phpOMS\Module\InstallerAbstract;
*/
class Installer extends InstallerAbstract
{
/**
* {@inheritdoc}
*/
public static function install(DatabasePool $dbPool, InfoManager $info) : void
{
$sqlite = new SQLiteConnection([
'db' => 'sqlite',
'prefix' => '',
'database' => __DIR__ . '/../../../phpOMS/Localization/Defaults/localization.sqlite'
]);
self::installCountries($sqlite, $dbPool);
self::installLanguages($sqlite, $dbPool);
$sqlite->close();
}
private static function installCountries(SQLiteConnection $sqlite, DatabasePool $dbPool)
{
$con = $dbPool->get();
$query = new Builder($con);
$query->insert('country_name', 'country_native', 'country_code2', 'country_code3', 'country_codenum')->into('country');
$countries = $sqlite->select('*')->from('country')->execute();
foreach ($countries as $country) {
$query->values(
$country['country_name'],
$country['country_name'],
$country['country_code2'],
$country['country_code3'],
$country['country_numeric']
);
}
$con->execute($query->toSql());
}
private static function installLanguages(SQLiteConnection $sqlite, DatabasePool $dbPool)
{
$con = $dbPool->get();
$query = new Builder($con);
$query->insert('language_name', 'language_native', 'language_639_2T', 'language_639_2B', 'language_639_3')->into('language');
$languages = $sqlite->select('*')->from('language')->execute();
foreach ($languages as $language) {
$query->values(
$language['language_name'],
$language['language_native'],
$language['language_639_2T'],
$language['language_639_2B'],
$language['language_639_3']
);
}
$con->execute($query->toSql());
}
}