Test each internal settings before creating them

This commit is contained in:
Jeremy Benoist 2019-02-27 13:39:17 +01:00
parent c2efb5a306
commit fcd54e2447
No known key found for this signature in database
GPG key ID: BCA73962457ACC3C

View file

@ -8,54 +8,132 @@ use Wallabag\CoreBundle\Doctrine\WallabagMigration;
/** /**
* Add missing entries in craue_config_setting. * Add missing entries in craue_config_setting.
*/ */
class Version20190129120000 extends WallabagMigration final class Version20190129120000 extends WallabagMigration
{ {
var $settings = array( private $settings = [
array("name" => "carrot", "value" => "1", "section" => "entry"), [
array("name" => "share_diaspora", "value" => "1", "section" => "entry"), 'name' => 'carrot',
array("name" => "diaspora_url", "value" => "http://diasporapod.com", "section" => "entry"), 'value' => '1',
array("name" => "share_shaarli", "value" => "1", "section" => "entry"), 'section' => 'entry',
array("name" => "shaarli_url", "value" => "http://myshaarli.com", "section" => "entry"), ],
array("name" => "share_mail", "value" => "1", "section" => "entry"), [
array("name" => "share_twitter", "value" => "1", "section" => "entry"), 'name' => 'share_diaspora',
array("name" => "show_printlink", "value" => "1", "section" => "entry"), 'value' => '1',
array("name" => "export_epub", "value" => "1", "section" => "export"), 'section' => 'entry',
array("name" => "export_mobi", "value" => "1", "section" => "export"), ],
array("name" => "export_pdf", "value" => "1", "section" => "export"), [
array("name" => "export_csv", "value" => "1", "section" => "export"), 'name' => 'diaspora_url',
array("name" => "export_json", "value" => "1", "section" => "export"), 'value' => 'http://diasporapod.com',
array("name" => "export_txt", "value" => "1", "section" => "export"), 'section' => 'entry',
array("name" => "export_xml", "value" => "1", "section" => "export"), ],
array("name" => "piwik_enabled", "value" => "0", "section" => "analytics"), [
array("name" => "piwik_host", "value" => "v2.wallabag.org", "section" => "analytics"), 'name' => 'share_shaarli',
array("name" => "piwik_site_id", "value" => "1", "section" => "analytics"), 'value' => '1',
array("name" => "demo_mode_enabled", "value" => "0", "section" => "misc"), 'section' => 'entry',
array("name" => "demo_mode_username", "value" => "wallabag", "section" => "misc"), ],
array("name" => "wallabag_support_url", "value" => "https://www.wallabag.org/pages/support.html", "section" => "misc"), [
); 'name' => 'shaarli_url',
'value' => 'http://myshaarli.com',
'section' => 'entry',
],
[
'name' => 'share_mail',
'value' => '1',
'section' => 'entry',
],
[
'name' => 'share_twitter',
'value' => '1',
'section' => 'entry',
],
[
'name' => 'show_printlink',
'value' => '1',
'section' => 'entry',
],
[
'name' => 'export_epub',
'value' => '1',
'section' => 'export',
],
[
'name' => 'export_mobi',
'value' => '1',
'section' => 'export',
],
[
'name' => 'export_pdf',
'value' => '1',
'section' => 'export',
],
[
'name' => 'export_csv',
'value' => '1',
'section' => 'export',
],
[
'name' => 'export_json',
'value' => '1',
'section' => 'export',
],
[
'name' => 'export_txt',
'value' => '1',
'section' => 'export',
],
[
'name' => 'export_xml',
'value' => '1',
'section' => 'export',
],
[
'name' => 'piwik_enabled',
'value' => '0',
'section' => 'analytics',
],
[
'name' => 'piwik_host',
'value' => 'v2.wallabag.org',
'section' => 'analytics',
],
[
'name' => 'piwik_site_id',
'value' => '1',
'section' => 'analytics',
],
[
'name' => 'demo_mode_enabled',
'value' => '0',
'section' => 'misc',
],
[
'name' => 'demo_mode_username',
'value' => 'wallabag',
'section' => 'misc',
],
[
'name' => 'wallabag_support_url',
'value' => 'https://www.wallabag.org/pages/support.html',
'section' => 'misc',
],
];
/** /**
* @param Schema $schema * @param Schema $schema
*/ */
public function up(Schema $schema) public function up(Schema $schema)
{ {
$piwikEnabled = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
->fetchArray('SELECT * FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'piwik_enabled'");
$this->skipIf(false !== $piwikEnabled, 'It seems that you already played this migration, or user the wallabag:install command.');
foreach ($this->settings as $setting) { foreach ($this->settings as $setting) {
$this->addSql(" $settingEnabled = $this->container
INSERT INTO " . $this->getTable('craue_config_setting') . " ->get('doctrine.orm.default_entity_manager')
(name, value, section) ->getConnection()
VALUES ( ->fetchArray('SELECT * FROM ' . $this->getTable('craue_config_setting') . " WHERE name = '" . $setting['name'] . "'");
'" . $setting['name'] . "',
'" . $setting['value'] . "', if (false !== $settingEnabled) {
'" . $setting['section'] . "' continue;
); }
");
$this->addSql('INSERT INTO ' . $this->getTable('craue_config_setting') . " (name, value, section) VALUES ('" . $setting['name'] . "', '" . $setting['value'] . "', '" . $setting['section'] . "');");
} }
} }
@ -65,8 +143,8 @@ class Version20190129120000 extends WallabagMigration
public function down(Schema $schema) public function down(Schema $schema)
{ {
foreach ($this->settings as $setting) { foreach ($this->settings as $setting) {
$this->addSql(" $this->addSql('
DELETE FROM " . $this->getTable('craue_config_setting') . " DELETE FROM ' . $this->getTable('craue_config_setting') . "
WHERE name = '" . $setting['name'] . "'; WHERE name = '" . $setting['name'] . "';
"); ");
} }