将SDK更新到51 typeorm数据源后无法正常工作

问题描述 投票:0回答:1

出于某种原因,在我将 Expo Go 和 expo 更新到 SDK 51 后,我收到此错误:

 ERROR  [TypeError: _this3.sqlite.openDatabase is not a function. (In '_this3.sqlite.openDatabase(_this3.options.database)', '_this3.sqlite.openDatabase' is undefined)]

这是我的database.ts

import { DataSource } from 'typeorm';
import 'reflect-metadata';
import User from '../Models/User';
import Message from '../Models/Message';
import Dialogue from '../Models/Chats/Dialogue';
import Tab from '../Models/Tab';
import SelfProfile from '../Models/SelfProfile';
import Folder from '../Models/Folder';
import Channel from '../Models/Chats/Channel';
import Branch from '../Models/Chats/Branch';
import Role from '../Models/Chats/Role';
import Group from '../Models/Chats/Group';
import Chat from '../Models/Chats/Chat';
import MainChat from '../Models/Chats/MainChat';

export const dataSource = new DataSource({
  database: 'messenger.db',
  type: 'expo',
  driver: require('expo-sqlite'),
  entities: [User, SelfProfile, Message, Tab, Folder, Chat, Branch,
    MainChat, Role, Dialogue, Channel, Group],
  synchronize: true,
  dropSchema: true,
  logging: ["error"],
});

我的初始化.tsx


// some code before

  if (!dataSource.isInitialized) {
    try {
      await dataSource.initialize();
    } catch(e) {
      console.error(e);
    }
  }

// some code after

在更新之前,此代码运行良好。我还可以提供一些有关我的代码、包等的附加信息。

我尝试运行:

npx expo-doctor@latest
检查我的项目是否一切正常。

还有这个:

npx expo install --fix
解决我的依赖项问题。

react-native expo typeorm expo-go
1个回答
0
投票

通过“驱动程序”字段的以下配置修复了相同问题(对于世博升级 50 至 51):

import * as SQLite from 'expo-sqlite/legacy';
..
..
..
new DataSource({
      type: 'expo',
      database,
      driver: SQLite,
© www.soinside.com 2019 - 2024. All rights reserved.