https://github.com/strash/mony_notsoeasy_flutter
https://github.com/strash/mony_notsoeasy_flutter
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/strash/mony_notsoeasy_flutter
- Owner: strash
- License: agpl-3.0
- Created: 2024-10-04T03:00:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-30T19:31:48.000Z (about 1 year ago)
- Last Synced: 2025-03-30T20:26:26.915Z (about 1 year ago)
- Language: Dart
- Size: 3.53 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mony App
Для работы потребуется [Just](https://github.com/casey/just).
`just` - покажет список доступных команд. Все команды можно найти в **justfile**
в корне проекта. Запускать команды можно из любого места в проекте.
## Запуск проекта
`just run` - запустит проект со всеми необходимыми настройками.
## Обновление зависимостей
`just update` - обновит зависимости до последней мажорной версии.
## Build Runner
`just build` - сгенерирует необходимые файлы.
## Миграции
### Создание миграции
`just migrate "my new cool migration"` - создаст новый файл миграции по адресу
**lib/data/database/migrations/m_1729646059_my_new_cool_migration.dart**. При
удачном создании файла миграции отобразиться сообщение.
Внутри файла создасться класс миграции, с двумя методами, которые нужно
заимплементить.
```dart
import "package:mony_app/data/database/migration_service.dart";
import "package:sqflite/sqflite.dart";
final class M1729646059MyNewCoolMigration extends BaseMigration {
@override
Future up(Database db) async {
// действия при накатывании этой миграции
}
@override
Future down(Database db) async {
// действия при откатывании этой миграции
}
}
```
После этого в **lib/data/database/migration_service.dart** нужно добавить этот
класс в конец списка миграций.
```dart
final class MigrationService {
final List _migrations = [
M1728167641Init(),
M1728413017SecondMigration(),
// сюда
M1729646059MyNewCoolMigration(),
];
// ...
}
```
И наконец, чтобы при следующем запуске накатилась новая миграция, нужно поднять
версию миграции в **.version** в корне проекта.
`MIGRATE_VERSION=2` -> `MIGRATE_VERSION=3`
После этого запустить/перезапустить проект.
При запуске, если были изменения в миграциях, отобразиться сообщение об удачном
приминении новых миграций.
### Удаление миграции
Чтобы удалить миграцию, нужно:
- удалить класс миграции из массива миграций в сервисе **lib/data/database/migration_service.dart**
- удалить сгенерированный файл миграции
- удалить `export "package:mony_app/data/database/migrations/<название_файла>.dart"` из файла-бочки **lib/data/database/migrations/migrations.dart**
- уменьшить версию миграций в файле **.version**