Files
shortlink/config/Migrations/20190530004801_Version610.php
2024-03-17 11:39:27 +07:00

58 lines
1.8 KiB
PHP

<?php
use Migrations\AbstractMigration;
class Version610 extends AbstractMigration
{
public $autoId = false;
public function up()
{
$this->execute("SET SESSION sql_mode = ''");
$table_prefix = $this->getAdapter()->getOption('table_prefix');
$withdraw_methods = json_decode($this->getOption('withdraw_methods'));
foreach ($withdraw_methods as &$method) {
$method->id = \Cake\Utility\Text::slug($method->id);
}
$builder = $this->getQueryBuilder();
$builder
->update('options')
->set('value', json_encode($withdraw_methods))
->where(['name' => 'withdraw_methods'])
->execute();
$users = $this->fetchAll("SELECT `id`, `withdrawal_method` FROM `users`;");
foreach ($users as $user) {
$user_id = $user['id'];
$method = \Cake\Utility\Text::slug($user['withdrawal_method']);
$this->execute("UPDATE `users` SET `withdrawal_method` = '{$method}' WHERE `id` = {$user_id};");
}
$withdraws = $this->fetchAll("SELECT `id`, `method` FROM `withdraws`;");
foreach ($withdraws as $withdraw) {
$withdraw_id = $withdraw['id'];
$method = \Cake\Utility\Text::slug($withdraw['method']);
$this->execute("UPDATE `withdraws` SET `method` = '{$method}' WHERE `id` = {$withdraw_id};");
}
$this->execute("UPDATE `users` SET `plan_id`=1 WHERE `plan_id`=0;");
$this->execute("ALTER TABLE `users` CHANGE `plan_id` `plan_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '1';");
}
protected function getOption($name, $default = '')
{
$row = $this->fetchRow("SELECT * FROM `options` WHERE `name` = '{$name}'");
if (empty($row)) {
return $default;
}
return $row['value'];
}
}