OXID-Deployer/recipe/shopTasks.php

63 regels
1.9 KiB
PHP

<?php
2024-10-16 16:11:48 +02:00
2024-10-30 14:46:31 +01:00
namespace Deployer;
2024-10-17 08:54:34 +02:00
desc('run all database migrations');
2024-11-02 14:26:44 +01:00
task('oxid:runMigration', [
'oxid:setShopsOffline',
'oxid:executeMigrations',
'oxid:setShopsOnline'
2024-10-16 16:11:48 +02:00
]);
2024-10-16 23:22:22 +02:00
2024-10-31 21:21:54 +01:00
require_once 'inc/database.php';
2024-10-16 23:22:22 +02:00
desc('set shops offline');
2024-11-02 14:26:44 +01:00
task('oxid:setShopsOffline', function() {
2024-10-31 21:21:54 +01:00
if (get('mysql_configured')) {
2024-10-16 23:22:22 +02:00
$query = "UPDATE oxshops SET oxactive = '0', OXREGISTERSUBJECT = CONCAT('..', OXREGISTERSUBJECT) WHERE oxactive = '1';";
2024-11-01 21:49:52 +01:00
run('{{bin/mysql}} --defaults-extra-file={{db_conf_path}} -e "'.$query.'"');
2024-10-16 23:22:22 +02:00
} else {
2024-10-29 11:28:04 +01:00
warning('missing config, task skipped');
2024-10-16 23:22:22 +02:00
}
2024-10-17 08:54:34 +02:00
});
2024-10-16 23:22:22 +02:00
2024-11-02 14:26:44 +01:00
task('oxid:runMigration:failed', function() {
invoke('oxid:setShopsOnline');
2024-10-17 09:14:26 +02:00
})->hidden();
2024-11-02 14:26:44 +01:00
fail('oxid:runMigration', 'oxid:runMigration:failed');
2024-10-17 09:14:26 +02:00
desc('execute OXID Doctrine migrations');
2024-11-02 14:26:44 +01:00
task('oxid:executeMigrations', function () {
2024-10-17 09:14:26 +02:00
if (test("[ -f {{current_path}}/vendor/bin/oe-eshop-doctrine_migration ]")) {
run('{{bin/php}} {{current_path}}/vendor/bin/oe-eshop-doctrine_migration migrations:migrate');
}
2024-10-25 10:29:42 +02:00
})->hidden();;
2024-10-17 09:14:26 +02:00
2024-10-16 23:22:22 +02:00
desc('set shops online');
2024-11-02 14:26:44 +01:00
task('oxid:setShopsOnline', function() {
2024-10-31 21:21:54 +01:00
if (get('mysql_configured')) {
2024-10-16 23:22:22 +02:00
$query = "UPDATE oxshops SET oxactive = '1', OXREGISTERSUBJECT = SUBSTR(OXREGISTERSUBJECT, 3) WHERE oxactive = '0' AND OXREGISTERSUBJECT LIKE '..%';";
2024-11-01 21:49:52 +01:00
run('{{bin/mysql}} --defaults-extra-file={{db_conf_path}} -e "'.$query.'"');
2024-10-16 23:22:22 +02:00
} else {
2024-10-29 11:28:04 +01:00
warning('missing config, task skipped');
2024-10-16 23:22:22 +02:00
}
2024-10-17 08:54:34 +02:00
});
2024-10-29 11:28:04 +01:00
desc('show version of current OXID installation');
2024-11-02 14:26:44 +01:00
task('oxid:getVersion', function () {
if (test("[ -f {{current_path}}/composer.lock ]")) {
cd('{{current_path}}');
info(
run(
'{{bin/composer}} show oxid-esales/oxideshop-ce | grep -ws "versions" | cut -d " " -f 4'
)
);
}
});
2024-10-29 11:28:04 +01:00
desc('dump contents from source to destination database');
2024-11-02 14:26:44 +01:00
task('oxid:cloneDatabase', function () {
2024-11-02 14:38:00 +01:00
invoke('database:clone');
2024-11-01 23:49:52 +01:00
});