sql >> データベース >  >> RDS >> PostgreSQL

TypeORMは、エンティティデコレータのデータベース設定をサポートしていません

    これはセットアップの問題です。私はそれを次のように解決しました:

    1. 配列のentitiesを変更します したがって、各接続/データベースにはエンティティファイルを含む独自のフォルダがあり、最もよく使用するエンティティにdefaultという名前を付けます。 :
    // src/index.ts
     await createConnections([
          {
            name: 'default',
            host: 'SERVER1',
            username: 'bob',
            password: 'kiwi,
            type: 'mssql',
            database: 'db1',
            ...
           "synchronize": true,
           "entities": ["src/db1/entity/**/*.ts"],
          },
          {
            name: 'connection2,
            host: 'SERVER2',
            username: 'Mike',
            password: 'carrot',
            type: 'mssql',
            database: 'db2,
            ...
           "synchronize": true,
           "entities": ["src/db2/entity/**/*.ts"],
        ])
    
    1. データベースごとにそれぞれのフォルダにエンティティファイルを作成します:
      • src/db1/entity/Fruit.ts>db1のテーブル
      • src/db2/entity/Vegetables.ts>db2のテーブル

    "synchronize": true 各テーブルは正しいデータベースに自動的に作成されます

    1. テーブル内のデータへのアクセス:
      • defaultの場合 接続::
    import { Fruit} from 'src/db1/entity/Fruit.ts'
      fruits() {
        return Fruit.find()
      }
    
    • デフォルト以外の接続の場合:
    import { getRepository } from 'typeorm'
    import { Vegetable} from 'src/db2/entity/Vegetable.ts'
      vegetables() {
          return async () => await getRepository(Vegetable).find()
      }
    

    または

      async vegetables() {
        return await getRepository(vegetables, 'connection2').find()
      }
    

    これが、あなたや私と同じ問題に苦しんでいる他の誰かの助けになることを願っています。




    1. MariaDBのコミュニティに迅速なイノベーションを提供

    2. MySQLはcurrent_timestampで先月のデータを選択します

    3. LAN接続で別のコンピュータからSQLDeveloperを使用してOracle11Gデータベースに接続する方法

    4. ユーザーに対してCREATEコマンドが拒否されましたか?