数据库表迁移

This commit is contained in:
Happi (哈比)
2026-03-06 19:00:25 +08:00
parent 113ecb633a
commit 119b376720
21 changed files with 553 additions and 55 deletions

View File

@@ -1,27 +1,61 @@
import 'package:drift/drift.dart';
import 'package:im_app/data/local/drift/tables/favourites.dart';
import 'package:im_app/data/local/drift/tables/sounds.dart';
import 'package:im_app/data/local/drift/tables/tags.dart';
import 'package:im_app/data/local/drift/tables/pending_friend_request_histories.dart';
import 'package:im_app/data/local/drift/tables/message.dart';
import 'package:im_app/data/local/drift/tables/recent_mini_apps.dart';
import 'package:im_app/data/local/drift/tables/retries.dart';
import 'package:im_app/data/local/drift/tables/groups.dart';
import 'package:im_app/data/local/drift/tables/favorite_mini_apps.dart';
import 'package:im_app/data/local/drift/tables/discover_mini_apps.dart';
import 'package:im_app/data/local/drift/tables/chat_categories.dart';
import 'package:im_app/data/local/drift/tables/chat_bots.dart';
import 'package:im_app/data/local/drift/tables/favourite_details.dart';
import 'package:im_app/data/local/drift/tables/user_request_histories.dart';
import 'package:im_app/data/local/drift/tables/workspaces.dart';
import 'package:im_app/data/local/drift/tables/users.dart';
import 'package:im_app/data/local/drift/tables/test_tables.dart';
import 'package:im_app/data/local/drift/tables/explore_mini_apps.dart';
import 'package:im_app/data/local/drift/tables/call_logs.dart';
import 'package:im_app/data/local/drift/tables/chats.dart';
part 'app_database.g.dart';
@DriftDatabase(tables: [Users,TestTables]) //update mapping here
@DriftDatabase(tables: [Favourites,Sounds,Tags,PendingFriendRequestHistories,Messages,RecentMiniApps,Retries,Groups,FavoriteMiniApps,DiscoverMiniApps,ChatCategories,ChatBots,FavouriteDetails,UserRequestHistories,Workspaces,Users,ExploreMiniApps,CallLogs,Chats]) //update mapping here
class AppDatabase extends _$AppDatabase {
static Map<Type, TableInfo> getTableRegistry(GeneratedDatabase database) {
if (database is! AppDatabase) {
return {
};
return {};
}
return {
Favourite: database.favourites,
Sound: database.sounds,
Tag: database.tags,
PendingFriendRequestHistory: database.pendingFriendRequestHistories,
Message: database.messages,
RecentMiniApp: database.recentMiniApps,
Retry: database.retries,
Group: database.groups,
FavoriteMiniApp: database.favoriteMiniApps,
DiscoverMiniApp: database.discoverMiniApps,
ChatCategory: database.chatCategories,
ChatBot: database.chatBots,
FavouriteDetail: database.favouriteDetails,
UserRequestHistory: database.userRequestHistories,
Workspace: database.workspaces,
User: database.users,
TestTable: database.testTables,
ExploreMiniApp: database.exploreMiniApps,
CallLog: database.callLogs,
Chat: database.chats,
};
}
AppDatabase(super.e);
//升级数据库用此版本号
@override
int get schemaVersion => 1;
int get schemaVersion => 2;
@override
MigrationStrategy get migration {
@@ -29,10 +63,24 @@ class AppDatabase extends _$AppDatabase {
onCreate: (m) async {
await m.createAll();
},
beforeOpen: (details) async {
print("wtf");
},
onUpgrade: (m, from, to) async {
// 自动检测并添加缺失列
// Create any new tables that don't exist yet
print("upgrading");
for (final table in allTables) {
//取原来的字段
final existingTables = await m.database
.customSelect("SELECT name FROM sqlite_master WHERE type='table' AND name='${table.actualTableName}'")
.get();
if (existingTables.isEmpty) {
print("creating table");
await m.createTable(table);
continue;
}
// Auto-detect and add missing columns
final existingColumns = await m.database
.customSelect('PRAGMA table_info(${table.actualTableName})')
.get();
@@ -42,7 +90,6 @@ class AppDatabase extends _$AppDatabase {
for (final column in table.$columns) {
if (!existingNames.contains(column.name)) {
//字段缺失,添加。
await m.addColumn(table, column);
}
}

View File

@@ -0,0 +1,24 @@
import 'package:drift/drift.dart';
@DataClassName('CallLog')
class CallLogs extends Table {
TextColumn get id => text()();
IntColumn get callerId => integer().nullable()();
IntColumn get receiverId => integer().nullable()();
IntColumn get chatId => integer().nullable()();
IntColumn get duration => integer().nullable()();
IntColumn get videoCall => integer().nullable()();
IntColumn get createdAt => integer().nullable()();
IntColumn get updatedAt => integer().nullable()();
IntColumn get endedAt => integer().nullable()();
IntColumn get status => integer().nullable()();
IntColumn get isDeleted => integer().nullable()();
IntColumn get deletedAt => integer().nullable()();
IntColumn get isRead => integer().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'call_log';
}

View File

@@ -0,0 +1,33 @@
import 'package:drift/drift.dart';
@DataClassName('ChatBot')
class ChatBots extends Table {
IntColumn get id => integer()();
TextColumn get name => text().nullable()();
TextColumn get username => text().nullable()();
IntColumn get botUserId => integer().nullable()();
TextColumn get icon => text().nullable()();
TextColumn get iconGaussian => text().nullable()();
TextColumn get description => text().nullable()();
TextColumn get token => text().nullable()();
IntColumn get flag => integer().nullable()();
IntColumn get status => integer().nullable()();
TextColumn get webhook => text().withDefault(const Constant(''))();
TextColumn get commands => text().withDefault(const Constant('[]'))();
TextColumn get banner => text().nullable()();
IntColumn get channelId => integer().nullable()();
IntColumn get channelGroupId => integer().nullable()();
IntColumn get deletedAt => integer().nullable()();
TextColumn get internalWebhook => text().nullable()();
IntColumn get mode => integer().nullable()();
TextColumn get redirectUrl => text().nullable()();
IntColumn get isInvitable => integer().nullable()();
IntColumn get isAllowForward => integer().nullable()();
TextColumn get tips => text().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'chat_bot';
}

View File

@@ -0,0 +1,20 @@
import 'package:drift/drift.dart';
@DataClassName('ChatCategory')
class ChatCategories extends Table {
IntColumn get id => integer()();
TextColumn get name => text().nullable().unique()();
TextColumn get includedChatIds => text().nullable()();
TextColumn get excludedChatIds => text().nullable()();
IntColumn get seq => integer().nullable()();
IntColumn get isHide => integer().withDefault(const Constant(0))();
IntColumn get createdAt => integer().withDefault(const Constant(0))();
IntColumn get updatedAt => integer().withDefault(const Constant(0))();
IntColumn get deletedAt => integer().withDefault(const Constant(0))();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'chat_category';
}

View File

@@ -0,0 +1,58 @@
import 'package:drift/drift.dart';
@DataClassName('Chat')
class Chats extends Table {
IntColumn get id => integer()();
IntColumn get typ => integer().nullable()();
IntColumn get lastId => integer().nullable()();
IntColumn get lastTyp => integer().nullable()();
TextColumn get lastMsg => text().nullable()();
IntColumn get lastTime => integer().nullable()();
IntColumn get lastPos => integer().withDefault(const Constant(0))();
IntColumn get firstPos => integer().withDefault(const Constant(-1))();
IntColumn get msgIdx => integer().nullable()();
TextColumn get profile => text().nullable()();
TextColumn get pin => text().nullable()();
TextColumn get icon => text().nullable()();
TextColumn get iconGaussian => text().withDefault(const Constant(''))();
TextColumn get name => text().nullable()();
IntColumn get userId => integer().nullable()();
IntColumn get chatId => integer().nullable()();
IntColumn get friendId => integer().nullable()();
IntColumn get sort => integer().nullable()();
IntColumn get unreadNum => integer().nullable()();
IntColumn get unreadCount => integer().nullable()();
IntColumn get hideChatMsgIdx => integer().nullable()();
IntColumn get readChatMsgIdx => integer().nullable()();
IntColumn get otherReadIdx => integer().nullable()();
TextColumn get unreadAtMsgIdx => text().nullable()();
IntColumn get deleteTime => integer().nullable()();
IntColumn get addIndex => integer().nullable()();
IntColumn get flag => integer().withDefault(const Constant(0))();
IntColumn get flagMy => integer().nullable()();
IntColumn get autoDeleteInterval => integer().nullable()();
IntColumn get mute => integer().nullable()();
IntColumn get verified => integer().nullable()();
IntColumn get createTime => integer().nullable()();
IntColumn get startIdx => integer().nullable()();
IntColumn get isReadMsg => integer().nullable()();
TextColumn get translateOutgoing => text().withDefault(const Constant(''))();
TextColumn get translateIncoming => text().withDefault(const Constant(''))();
IntColumn get incomingIdx => integer().withDefault(const Constant(0))();
IntColumn get outgoingIdx => integer().withDefault(const Constant(0))();
IntColumn get incomingSoundId => integer().withDefault(const Constant(0))();
IntColumn get outgoingSoundId => integer().withDefault(const Constant(0))();
IntColumn get notificationSoundId => integer().withDefault(const Constant(0))();
TextColumn get chatKey => text().withDefault(const Constant(''))();
TextColumn get activeChatKey => text().withDefault(const Constant(''))();
IntColumn get coverIdx => integer().withDefault(const Constant(0))();
IntColumn get round => integer().withDefault(const Constant(0))();
IntColumn get workspaceId => integer().withDefault(const Constant(0))();
IntColumn get localPermission => integer().withDefault(const Constant(0))();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'chat';
}

View File

@@ -0,0 +1,36 @@
import 'package:drift/drift.dart';
@DataClassName('DiscoverMiniApp')
class DiscoverMiniApps extends Table {
TextColumn get id => text()();
TextColumn get name => text().nullable()();
TextColumn get openuid => text().nullable()();
TextColumn get devId => text().nullable()();
TextColumn get icon => text().nullable()();
TextColumn get iconGaussian => text().nullable()();
TextColumn get downloadUrl => text().nullable()();
TextColumn get description => text().nullable()();
IntColumn get version => integer().nullable()();
IntColumn get typ => integer().nullable()();
IntColumn get flag => integer().nullable()();
IntColumn get reviewStatus => integer().nullable()();
IntColumn get favoriteAt => integer().nullable()();
IntColumn get isActive => integer().nullable()();
IntColumn get createdAt => integer().nullable()();
IntColumn get updatedAt => integer().nullable()();
IntColumn get deletedAt => integer().nullable()();
RealColumn get score => real().nullable()();
TextColumn get channels => text().nullable()();
TextColumn get devName => text().nullable()();
TextColumn get pictureGaussian => text().nullable()();
TextColumn get picture => text().nullable()();
IntColumn get commentNum => integer().nullable()();
TextColumn get lastLoginAt => text().nullable()();
TextColumn get screen => text().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'discover_mini_app';
}

View File

@@ -0,0 +1,36 @@
import 'package:drift/drift.dart';
@DataClassName('ExploreMiniApp')
class ExploreMiniApps extends Table {
TextColumn get id => text()();
TextColumn get name => text().nullable()();
TextColumn get openuid => text().nullable()();
TextColumn get devId => text().nullable()();
TextColumn get icon => text().nullable()();
TextColumn get iconGaussian => text().nullable()();
TextColumn get downloadUrl => text().nullable()();
TextColumn get description => text().nullable()();
IntColumn get version => integer().nullable()();
IntColumn get typ => integer().nullable()();
IntColumn get flag => integer().nullable()();
IntColumn get reviewStatus => integer().nullable()();
IntColumn get favoriteAt => integer().nullable()();
IntColumn get isActive => integer().nullable()();
IntColumn get createdAt => integer().nullable()();
IntColumn get updatedAt => integer().nullable()();
IntColumn get deletedAt => integer().nullable()();
RealColumn get score => real().nullable()();
TextColumn get channels => text().nullable()();
TextColumn get devName => text().nullable()();
TextColumn get pictureGaussian => text().nullable()();
TextColumn get picture => text().nullable()();
IntColumn get commentNum => integer().nullable()();
IntColumn get lastLoginAt => integer().nullable()();
TextColumn get screen => text().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'explore_mini_app';
}

View File

@@ -0,0 +1,36 @@
import 'package:drift/drift.dart';
@DataClassName('FavoriteMiniApp')
class FavoriteMiniApps extends Table {
TextColumn get id => text()();
TextColumn get name => text().nullable()();
TextColumn get openuid => text().nullable()();
TextColumn get devId => text().nullable()();
TextColumn get icon => text().nullable()();
TextColumn get iconGaussian => text().nullable()();
TextColumn get downloadUrl => text().nullable()();
TextColumn get description => text().nullable()();
IntColumn get version => integer().nullable()();
IntColumn get typ => integer().nullable()();
IntColumn get flag => integer().nullable()();
IntColumn get reviewStatus => integer().nullable()();
IntColumn get favoriteAt => integer().nullable()();
IntColumn get isActive => integer().nullable()();
IntColumn get createdAt => integer().nullable()();
IntColumn get updatedAt => integer().nullable()();
IntColumn get deletedAt => integer().nullable()();
RealColumn get score => real().nullable()();
TextColumn get channels => text().nullable()();
TextColumn get devName => text().nullable()();
TextColumn get pictureGaussian => text().nullable()();
TextColumn get picture => text().nullable()();
IntColumn get commentNum => integer().nullable()();
IntColumn get lastLoginAt => integer().nullable()();
TextColumn get screen => text().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'favorite_mini_app';
}

View File

@@ -0,0 +1,16 @@
import 'package:drift/drift.dart';
@DataClassName('FavouriteDetail')
class FavouriteDetails extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get relatedId => text().withDefault(const Constant(''))();
TextColumn get content => text().withDefault(const Constant(''))();
IntColumn get typ => integer().nullable()();
IntColumn get messageId => integer().nullable()();
IntColumn get sendId => integer().nullable()();
IntColumn get chatId => integer().nullable()();
IntColumn get sendTime => integer().nullable()();
@override
String get tableName => 'favourite_detail';
}

View File

@@ -0,0 +1,26 @@
import 'package:drift/drift.dart';
@DataClassName('Favourite')
class Favourites extends Table {
IntColumn get id => integer()();
TextColumn get parentId => text().withDefault(const Constant(''))();
TextColumn get data => text().withDefault(const Constant(''))();
IntColumn get createdAt => integer().withDefault(const Constant(0))();
IntColumn get updatedAt => integer().withDefault(const Constant(0))();
IntColumn get deletedAt => integer().withDefault(const Constant(0))();
IntColumn get source => integer().nullable()();
IntColumn get userId => integer().nullable()();
IntColumn get authorId => integer().nullable()();
TextColumn get typ => text().withDefault(const Constant('[]'))();
TextColumn get tag => text().withDefault(const Constant('[]'))();
IntColumn get isPin => integer().withDefault(const Constant(0))();
IntColumn get chatTyp => integer().withDefault(const Constant(0))();
IntColumn get isUploaded => integer().withDefault(const Constant(1))();
TextColumn get urls => text().withDefault(const Constant('[]'))();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'favourite';
}

View File

@@ -0,0 +1,39 @@
import 'package:drift/drift.dart';
@DataClassName('Group')
class Groups extends Table {
IntColumn get id => integer()();
IntColumn get userJoinDate => integer().nullable()();
TextColumn get name => text().nullable()();
TextColumn get profile => text().nullable()();
TextColumn get icon => text().nullable()();
TextColumn get iconGaussian => text().withDefault(const Constant(''))();
IntColumn get permission => integer().nullable()();
IntColumn get admin => integer().nullable()();
TextColumn get members => text().nullable()();
IntColumn get owner => integer().nullable()();
TextColumn get admins => text().nullable()();
IntColumn get visible => integer().nullable()();
IntColumn get speakInterval => integer().nullable()();
IntColumn get groupType => integer().nullable()();
IntColumn get roomType => integer().nullable()();
IntColumn get maxNumber => integer().nullable()();
IntColumn get channelId => integer().nullable()();
IntColumn get channelGroupId => integer().nullable()();
IntColumn get createTime => integer().nullable()();
IntColumn get updateTime => integer().nullable()();
IntColumn get addIndex => integer().nullable()();
IntColumn get maxMember => integer().nullable()();
IntColumn get expireTime => integer().nullable()();
IntColumn get workspaceId => integer().withDefault(const Constant(0))();
IntColumn get mode => integer().withDefault(const Constant(0))();
IntColumn get redpacketPlay => integer().withDefault(const Constant(0))();
TextColumn get topic => text().nullable()();
TextColumn get rp => text().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'chat_group';
}

View File

@@ -0,0 +1,27 @@
import 'package:drift/drift.dart';
@DataClassName('Message')
class Messages extends Table {
IntColumn get id => integer()();
IntColumn get messageId => integer().nullable()();
IntColumn get chatId => integer().nullable()();
IntColumn get chatIdx => integer().nullable()();
IntColumn get sendId => integer().nullable()();
TextColumn get content => text().nullable()();
IntColumn get typ => integer().nullable()();
IntColumn get sendTime => integer().nullable()();
IntColumn get expireTime => integer().nullable()();
IntColumn get createTime => integer().nullable()();
TextColumn get atUsers => text().nullable()();
TextColumn get emojis => text().withDefault(const Constant('[]'))();
IntColumn get editTime => integer().withDefault(const Constant(0))();
IntColumn get refTyp => integer().withDefault(const Constant(0))();
IntColumn get flag => integer().withDefault(const Constant(0))();
TextColumn get cmid => text().withDefault(const Constant(''))();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'message';
}

View File

@@ -0,0 +1,17 @@
import 'package:drift/drift.dart';
@DataClassName('PendingFriendRequestHistory')
class PendingFriendRequestHistories extends Table {
IntColumn get id => integer()();
IntColumn get uid => integer()();
IntColumn get requestTime => integer()();
TextColumn get remarks => text().nullable()();
TextColumn get source => text().nullable()();
IntColumn get rs => integer().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'pending_friend_request_histories';
}

View File

@@ -0,0 +1,36 @@
import 'package:drift/drift.dart';
@DataClassName('RecentMiniApp')
class RecentMiniApps extends Table {
TextColumn get id => text()();
TextColumn get name => text().nullable()();
TextColumn get openuid => text().nullable()();
TextColumn get devId => text().nullable()();
TextColumn get icon => text().nullable()();
TextColumn get iconGaussian => text().nullable()();
TextColumn get downloadUrl => text().nullable()();
TextColumn get description => text().nullable()();
IntColumn get version => integer().nullable()();
IntColumn get typ => integer().nullable()();
IntColumn get flag => integer().nullable()();
IntColumn get reviewStatus => integer().nullable()();
IntColumn get favoriteAt => integer().nullable()();
IntColumn get isActive => integer().nullable()();
IntColumn get createdAt => integer().nullable()();
IntColumn get updatedAt => integer().nullable()();
IntColumn get deletedAt => integer().nullable()();
RealColumn get score => real().nullable()();
TextColumn get channels => text().nullable()();
TextColumn get devName => text().nullable()();
TextColumn get pictureGaussian => text().nullable()();
TextColumn get picture => text().nullable()();
IntColumn get commentNum => integer().nullable()();
IntColumn get lastLoginAt => integer().nullable()();
TextColumn get screen => text().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'recent_mini_app';
}

View File

@@ -0,0 +1,20 @@
import 'package:drift/drift.dart';
@DataClassName('Retry')
class Retries extends Table {
IntColumn get id => integer().autoIncrement()();
IntColumn get uid => integer().nullable()();
TextColumn get apiType => text().withDefault(const Constant(''))();
TextColumn get endPoint => text().withDefault(const Constant(''))();
TextColumn get requestData => text().withDefault(const Constant(''))();
IntColumn get synced => integer().nullable()();
TextColumn get callbackFun => text().withDefault(const Constant(''))();
IntColumn get expired => integer().nullable()();
IntColumn get replace => integer().nullable()();
IntColumn get expireTime => integer().nullable()();
IntColumn get createTime => integer().nullable()();
IntColumn get addIndex => integer().nullable()();
@override
String get tableName => 'retry';
}

View File

@@ -0,0 +1,20 @@
import 'package:drift/drift.dart';
@DataClassName('Sound')
class Sounds extends Table {
IntColumn get id => integer()();
TextColumn get filePath => text().withDefault(const Constant(''))();
IntColumn get typ => integer()();
TextColumn get name => text().withDefault(const Constant(''))();
IntColumn get createdAt => integer()();
IntColumn get updatedAt => integer()();
IntColumn get deletedAt => integer().withDefault(const Constant(0))();
IntColumn get channelGroupId => integer()();
IntColumn get isDefault => integer()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'sound';
}

View File

@@ -0,0 +1,15 @@
import 'package:drift/drift.dart';
@DataClassName('Tag')
class Tags extends Table {
IntColumn get id => integer().autoIncrement()();
IntColumn get uid => integer().nullable()();
TextColumn get name => text().withDefault(const Constant(''))();
IntColumn get type => integer().nullable()();
IntColumn get createdAt => integer().nullable()();
IntColumn get updatedAt => integer().nullable()();
IntColumn get addIndex => integer().nullable()();
@override
String get tableName => 'tags';
}

View File

@@ -1,41 +0,0 @@
import 'package:drift/drift.dart';
@DataClassName('TestTable')
class TestTables extends Table {
IntColumn get id => integer().autoIncrement()();
IntColumn get uid => integer().nullable()();
TextColumn get uuid => text().nullable()();
IntColumn get lastOnline => integer().nullable()();
TextColumn get profilePic => text().nullable()();
TextColumn get profilePicGaussian => text().withDefault(const Constant(''))();
TextColumn get nickname => text().nullable()();
TextColumn get depositName => text().nullable()();
IntColumn get hasSetDepositName => integer().withDefault(const Constant(0))();
TextColumn get contact => text().nullable()();
TextColumn get countryCode => text().nullable()();
TextColumn get username => text().nullable()();
IntColumn get role => integer().nullable()();
IntColumn get relationship => integer().nullable()();
IntColumn get friendStatus => integer().nullable()();
TextColumn get bio => text().nullable()();
TextColumn get userAlias => text().nullable()();
IntColumn get requestAt => integer().nullable()();
IntColumn get deletedAt => integer().nullable()();
TextColumn get email => text().nullable()();
TextColumn get recoveryEmail => text().nullable()();
TextColumn get remark => text().nullable()();
TextColumn get source => text().nullable()();
IntColumn get addIndex => integer().nullable()();
IntColumn get incomingSoundId => integer().withDefault(const Constant(0))();
IntColumn get outgoingSoundId => integer().withDefault(const Constant(0))();
IntColumn get notificationSoundId => integer().withDefault(const Constant(0))();
IntColumn get sendMessageSoundId => integer().withDefault(const Constant(0))();
IntColumn get groupNotificationSoundId => integer().withDefault(const Constant(0))();
TextColumn get groupTags => text().withDefault(const Constant('[]'))();
TextColumn get friendTags => text().withDefault(const Constant('[]'))();
TextColumn get publicKey => text().nullable()();
IntColumn get configBits => integer().withDefault(const Constant(0))();
TextColumn get hint => text().nullable()();
@override
String get tableName => 'test_tables';
}

View File

@@ -0,0 +1,14 @@
import 'package:drift/drift.dart';
@DataClassName('UserRequestHistory')
class UserRequestHistories extends Table {
IntColumn get id => integer()();
IntColumn get status => integer().nullable()();
IntColumn get createdAt => integer().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'user_request_history';
}

View File

@@ -0,0 +1,24 @@
import 'package:drift/drift.dart';
@DataClassName('Workspace')
class Workspaces extends Table {
IntColumn get id => integer()();
TextColumn get name => text().nullable()();
IntColumn get ownerId => integer().nullable()();
TextColumn get description => text().nullable()();
TextColumn get logo => text().nullable()();
IntColumn get grade => integer().nullable()();
IntColumn get cap => integer().nullable()();
TextColumn get currency => text().nullable()();
IntColumn get status => integer().nullable()();
IntColumn get createdAt => integer().nullable()();
IntColumn get updatedAt => integer().nullable()();
IntColumn get deletedAt => integer().nullable()();
IntColumn get channelGroupId => integer().nullable()();
@override
Set<Column> get primaryKey => {id};
@override
String get tableName => 'workspace';
}

View File

@@ -59,12 +59,7 @@ class LoginViewModel extends _$LoginViewModel {
///TODO: StorageSDKLifeCycle 需要只在主项目暴露
final storageLifeCycle = storageApi as StorageSdkLifecycle;
ref.read(authNotifierProvider).login();
await storageLifeCycle.openDatabase(1234567);
final rows = await storageApi.rawQuery("PRAGMA table_info('user')");
for (final row in rows) {
debugPrint('Schema: ${row.data}');
}
}
/// 执行登录