1)
2) model
/category_color.dart
import 'package:drift/drift.dart';
class CategoryColors extends Table {
// PRIMARY KEY
IntColumn get id => integer()();
// 색상 코드
TextColumn get hexCode => text()();
}
/schedule.dart
import 'package:drift/drift.dart';
class Schedules extends Table {
// PRIMARY KEY
IntColumn get id => integer().autoIncrement()();
// 내용
TextColumn get content => text()();
// 일정 날짜
DateTimeColumn get date => dateTime()();
// 시작 시간
IntColumn get startTime => integer()();
// 끝 시간
IntColumn get endTime => integer()();
// Category Color Table ID
IntColumn get colorId => integer()();
// 생성 날짜
DateTimeColumn get createdAt => dateTime().clientDefault(
() => DateTime.now(),
)();
}
3) database
// private 값들은 불러올 수 없다.
import 'dart:io';
import 'package:calendar_scheduler/model/category_color.dart';
import 'package:calendar_scheduler/model/schedule.dart';
import 'package:drift/drift.dart';
import 'package:drift/native.dart';
import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
// private 값까지 불러올 수 있다.
part 'drift_database.g.dart';
@DriftDatabase(
tables: [
Schedules,
CategoryColors,
],
)
class LocalDatabase extends _$LocalDatabase {
LocalDatabase() : super(_openConnection());
}
LazyDatabase _openConnection() {
return LazyDatabase(() async {
final dbFolder = await getApplicationDocumentsDirectory();
final file = File(p.join(dbFolder.path, 'db.sqlite'));
return NativeDatabase(file);
});
}
drift_database.g.dart 파일이 생성된다
'개발이 좋아서 > Flutter가 좋아서' 카테고리의 다른 글
[flutter] Scrollable Widgets_SingleChildScrollView (0) | 2023.01.26 |
---|---|
[flutter] 켈린더 스케쥴러_최종 (0) | 2023.01.25 |
[flutter] 켈린더 스케쥴러_UI 구현 (0) | 2023.01.17 |
[flutter] 켈린더 스케쥴러_환경세팅 (0) | 2023.01.12 |
[flutter] 영상통화 앱_만들기 (0) | 2023.01.11 |