2017-11-02 11 views
0

私はmongoDbで動作する.NETコアプロジェクトを持っています。 私はデータ移行に関する調査を行いましたが、どちらのソリューションも私のためには機能しません。.NETコア用MongoDB移行

MongoMigrations NuGetパッケージがありますが、.NET Coreと互換性がありません。 現在のデータベースのバージョンをチェックし、最新のものでない場合は、特定の更新を行うメソッドをいくつか(たとえば、RemoveUserCollection()メソッドなど)呼び出すことが目的です。

誰も同じ問題を抱えているのですか、それとももっと良い解決策ですか? :)

ありがとう!

答えて

1

私はこの問題を自分自身で数回見つけましたが、アプリケーションの起動時に手作業で起動するか、javascriptを使用してスクリプトを作成し、他のシステムの変更と同様に展開するだけで2分もかかります。

私はその後、私はちょうど同じディレクトリ内の.jsファイルのロードダンプ

param([Parameter(Mandatory=$True)][string]$Hostname, [string]$Username = $null, [string]$Password = $null) 

if($Username){ 
    $authParameters = "-u $Username -p $Password --authenticationDatabase admin" 
} 

Write-Host "Running all migration scripts..." 
$scripts = Get-Childitem | where {$_.extension -like '.js'} | foreach { $_.Name } 
Invoke-Expression "c:\mongodb\bin\mongo.exe --host $Hostname $authParameters $scripts" 

のようにPowerShellスクリプトを持っています。

; 
(function() { 
    var migration = { _id: ObjectId("568b9e75e1e6530a2f4d8884"), name: "Somekinda Migration (929394)" }; 

    var testDb = db.getMongo().getDB('test'); 
    if (!testDb.migrations.count({ _id: migration._id })) { 
     testDb.migrations.insert(migration); 
     print('running ' + migration.name) 

     // Do Work 
     testDb.people.find().snapshot().forEach(
      function (alm) { 
       testDb.people.save(
        { 
         modifiedAt: new Date(), 
        }); 
      } 
     ) 
    } 
})(); 
関連する問題