mirror of
https://github.com/flarum/framework.git
synced 2025-04-26 22:54:03 +08:00
Revert "migrating user preferences obviously works on empty table"
This reverts commit 066baed5b91a71a828509d2ecd48021fda54952e.
This commit is contained in:
parent
9449fb4f1f
commit
4d2d7465ee
@ -1,30 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Flarum.
|
|
||||||
*
|
|
||||||
* (c) Toby Zerner <toby.zerner@gmail.com>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Schema\Builder;
|
|
||||||
|
|
||||||
return [
|
|
||||||
'up' => function (Builder $schema) {
|
|
||||||
$schema->create('notification_preferences', function (Blueprint $table) {
|
|
||||||
$table->integer('user_id')->unsigned();
|
|
||||||
$table->string('type');
|
|
||||||
$table->string('channel');
|
|
||||||
$table->boolean('enabled')->default(false);
|
|
||||||
|
|
||||||
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
'down' => function (Builder $schema) {
|
|
||||||
$schema->drop('notification_preferences');
|
|
||||||
}
|
|
||||||
];
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Flarum.
|
|
||||||
*
|
|
||||||
* (c) Toby Zerner <toby.zerner@gmail.com>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Schema\Builder;
|
|
||||||
|
|
||||||
return [
|
|
||||||
'up' => function (Builder $schema) {
|
|
||||||
$schema->table('users', function (Blueprint $table) {
|
|
||||||
$table->boolean('disclose_online')->default(false);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
'down' => function (Builder $schema) {
|
|
||||||
$schema->table('users', function (Blueprint $table) {
|
|
||||||
$table->dropColumn('disclose_online');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
];
|
|
@ -1,51 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Flarum.
|
|
||||||
*
|
|
||||||
* (c) Toby Zerner <toby.zerner@gmail.com>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Schema\Builder;
|
|
||||||
use Illuminate\Support\Arr;
|
|
||||||
|
|
||||||
return [
|
|
||||||
'up' => function (Builder $builder) {
|
|
||||||
$db = $builder->getConnection();
|
|
||||||
|
|
||||||
$db->table('users')
|
|
||||||
->whereNotNull('preferences')
|
|
||||||
->orderBy('id')
|
|
||||||
->chunk(50, function (Collection $users) use ($db) {
|
|
||||||
$users->each(function ($user) use ($db) {
|
|
||||||
collect(json_decode(Arr::get($user, 'preferences', '{}')))
|
|
||||||
->each(function ($value, $key) use ($user, $db) {
|
|
||||||
if ($key === 'discloses_online') {
|
|
||||||
$db->table('users')
|
|
||||||
->where('id', $user['id'])
|
|
||||||
->update(['discloses_online' => (bool) $value]);
|
|
||||||
}
|
|
||||||
if (preg_match('/^notify_(?<type>[^_]+)_(?<channel>.*)$/', $key, $matches)) {
|
|
||||||
$db->table('notification_preferences')
|
|
||||||
->insert([
|
|
||||||
'user_id' => $user['id'],
|
|
||||||
'type' => $matches['type'],
|
|
||||||
'channel' => $matches['channel'],
|
|
||||||
'enabled' => (bool) $value
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
'down' => function (Builder $builder) {
|
|
||||||
$db = $builder->getConnection();
|
|
||||||
|
|
||||||
$db->table('notification_preferences')->truncate();
|
|
||||||
}
|
|
||||||
];
|
|
Loading…
x
Reference in New Issue
Block a user