-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Реалізація міграцій БД з використанням doctrine migrations #74
base: master
Are you sure you want to change the base?
Conversation
Добре, що не набули про це при переході на unicode_ci 👍 |
6e06b39
to
0beffd0
Compare
Наївна реалізація завдання про
На жаль, автори docker відкинули docker/compose#374 і docker/compose#1809, тому напевне єдина альтернатива - це додати |
Можна ще за допомогою
|
Про |
Зараз ще згадав: |
ec967d0
to
9fc3756
Compare
104c7f3
to
ebd4b2f
Compare
Таблиці, які не позначані
Вони не мають жодної цінності. |
@konfuciusu Трохи не вловив - а позначені де? Тобто цей перелік
можна викидати? |
Тут: https://github.com/hurtom/toloka/blob/master/install/sql/toloka_old.sql Так, можна викидати. |
@konfuciusu Аааа... Вибачаюсь, я не звернув увагу на ті "зірочки" в старій схемі 🤦♂️ 😄 |
This one is to reflect changes from PR hurtom#53 and to be applied during database migration
* Add migration for bb_bt_torrents.topic_check* (hurtom#43) * Aggregate ALTERs to reduce table modifications
* Source formatting, reordered steps alphabetically * Fetch via iterator instead of fetchAll() * Convert rest of tables to InnoDB
TIMESTAMP fields should have set {version: true} in field description. Also make corresponding fields timestampable via gedmo/doctrine-extensions. Make quoting ENUM values the right way
* Reorder clauses for readability * Adjust cat_id datatype, bb_categories and related tables * Adjust forum_id datatype * Adjust topic_id and related * Adjust post_id and related * Adjust group_id and related * Adjust warning_id and related
Follow up review comments in PR hurtom#53, add `thanks_count` column
Migration should succeed with either way of migration - from the old 0.x engine to current or from the stock 2.x schema. Reset some table options, eg. MAX_ROWS and ROW_FORMAT. Reflect changes for TP v2.2.0 (at this point all `*_ip` columns were reset to '0', drop bb_ads table etc) and v2.2.2 Adjust datatypes to comply with doctrine etc
fea31a2
to
7be1b3f
Compare
Я тут думаю - може варто замість автоматичного запуску через diff --git a/composer.json b/composer.json
index ff0de5d2..ecdfdcfa 100644
--- a/composer.json
+++ b/composer.json
@@ -88,6 +88,9 @@
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
],
+ "database:migrate": [
+ "php artisan doctrine:migrations:migrate --force"
+ ],
"test": [
"echo 'NOTE: Instead of running <composer test:lint> linting should be done with StyleCI'",
"composer test:unit", та відповідно docker-compose up -d
docker-compose exec -u www-data toloka composer update -o
docker-compose exec -u www-data toloka composer database:migrate Або можна навіть |
854d5ce
to
87999c2
Compare
* Update `codeception/c3` * Update `laravel-doctrine/extensions` (to min. version with support for laravel 5.4) * Update `laravel-doctrine/migrations` (to min. version supporting laravel 5.4) * Update `laravel-doctrine/orm` * Add redis sample config (.env) * Use `file` as a default cache driver
Add `database:migrate` composer command and run it as part of travis `before_script` Also use username instead of user id ("magic number")
87999c2
to
4344ab5
Compare
* Merge remaining queries, reorder and add references to issues/PRs * Adjust datatype for topic_type * Add validation for torrent check status * Some source formatting etc
Через Можна вже пробувати тестувати на старій базі? |
@konfuciusu Майже, є кілька моментів які зловив при перебазуванні #55 - днями з ними розберусь, думаю десь на наступному тижні вже можна буде тестувати. В принципі міграція працює вже зараз, але після міграції не все працює з функціоналу через нові поля і відсутність типових значень на них. Зараз можна хіба що прогнати тестову міграцію на знятку (снепшоті), аби прикинути необхідний час і можливо щось оптимізувати. |
Щоб в майбутньому бути сумісним з laravel (upstream TP перейшов на нього в experimental
гілці) почнімо з міграцій doctrine.
Через використання ENUM довелось задіяти ORM та згенерувати відповідні entities, плюс необхідно проаналізувати, чи можливий т.зв. data-seeding у випадку doctrine (якщо замість альтерів таблиць з даними переливати дані зі старої структури в нову, пусту базу)
cli-додаток для роботи з міграціями- використовуєтьсяartisan
зlaravel
(upstream переходять на нього)utf8mb4
/utf8mb4_unicode_ci
utf8mb4_bin
для зберігання паролів, ip-адрес, ідентифікаторів сесій тощо - частково це було реалізовано до пропонованих змінпроаналізувати можливість data-seeding у випадку doctrine-laravel
може сідування даних.yml
composer.json
Closes #7, closes #46, closes #76
TODO
docker-compose.yml
, щоб міграція автоматично запускалася приdocker-compose up -d
(документація?)php artisan migrate
experimental
гілки upstream’у правки щодо зміни конфліктуючих з laravel імен функцій (redirect()
&auth()
)bb_attachments
(Прикріплення файлів до приватних повідомлень) Прикріплення файлів до приватних повідомлень (bb_attachments) #27bb_attachments_rating
(кнопка "Дякую") Додати кнопку "дякую" #23/Кнопка "Дякую" #53bb_bt_config
, closes Міграція bb_bt_config #95bb_bt_search_results
, closes Міграція bb_bt_search_results #94bb_bt_torrents
.topic_check*
, closes Міграція перевірок модераторами (bb_bt_torrents.topic_check*) #43bb_bt_torrents_del
, closes Міграція bb_bt_torrents_del #96bb_bt_users
, closes Міграція статистики завантажень і бонусів (bb_bt_users) #47bb_bt_users_dl_status
, closes Міграція bb_bt_users_dl_status #97bb_confirm
, closes Міграція bb_confirm #98bb_dl_st_prevs_list
, closes Міграція bb_dl_st_prevs_list #99bb_easymod
таbb_easymod_processed_files
, closes Міграція bb_easymod #39bb_flags
, closes Міграція bb_flags #100bb_forbidden_extensions
, closes Міграція bb_forbidden_extensions #101bb_forum_prune
, closes Міграція bb_forum_prune #102bb_posts_edit
, closes Час і автор кожного редагування допису (bb_posts_edit) #40bb_search_wordlist
, closes Міграція bb_search_wordlist #103bb_search_wordmatch
, closes Міграція bb_search_wordmatch #90bb_sessions_keys
, closes Таблиця bb_sessions_keys #37bb_themes
таbb_themes_name
, closes Міграція bb_themes* #104bb_topics_move
, closes Міграція bb_topics_move #105bb_user_group.group_moderator
, closes Модератори груп (bb_user_group.group_moderator) #38bb_vote_(desc|results|voters)
, closes Міграція bb_vote_(desc|results|voters) #91bb_warnings
таbb_warnings_text
(так звані "жовті картки") Жовті картки (bb_warnings*) #41TEXT
, які приCONVERT TO CHARACTER SET
стаютьMEDIUMTEXT
типуbb_users
, closes Типове значення user_birthday не дає змінити пароль #56