0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プリザンターをAzure SQL Databaseで構築した際のエラーと対処

0
Last updated at Posted at 2026-03-18

はじめに

プリザンターをさくらのVPS for Windows Server に構築し、データベースには Azure SQL Database を使う構成でセットアップしました。

構成は次の通りです。

  • アプリケーションサーバー: さくらのVPS for Windows Server
  • データベース: Azure SQL Database
  • セットアップ対象: プリザンター

Azure SQL Database には、Windows Server 上の SQL Server Management Studio から接続できていたため、最初は「DB接続自体は問題なさそう」と考えていました。
ところが、プリザンター の CodeDefiner 実行時にエラーが発生し、少し手こずりました。

この記事では、そのときに遭遇したエラーと解決方法をまとめます。

構成

今回の構成は以下です。

アプリケーションは VPS 上の Windows Server で動かし、データベースのみ Azure SQL Database を利用しています。

最初に発生したエラー

CodeDefiner を実行すると、次のエラーが出ました。

dotnet Implem.CodeDefiner.dll _rds /l "ja" /z "Tokyo Standard Time"

<INFO> Starter.Main: Implem.CodeDefiner 1.4.16.1
<ERROR> Starter.ConfigureDatabase: [208] Invalid object name 'syslogins'.

原因その1: Azure SQL Database 用の設定になっていなかった

結論から言うと、プリザンター 側の DB 設定が Azure SQL Database 用になりきっていませんでした。

修正した内容

Rds.json を Azure SQL Database 用に修正しました。

ポイントは以下です。

  • ProviderAzure にする
  • SaConnectionString / OwnerConnectionString / UserConnectionString の3つをすべて Azure SQL Database の接続文字列にする

修正イメージは以下です。

{
  "Dbms": "SQLServer",
  "Provider": "Azure",
  "SaConnectionString": "接続文字列",
  "OwnerConnectionString": "接続文字列",
  "UserConnectionString": "接続文字列"
}

さらに発生したエラー

その後、テーブル作成自体は進んだものの、今度は次のようなエラーが出ました。

<ERROR> TablesConfigurator.ConfigureFullTextIndexSqlServer: [4060]
Cannot open database "Implem.Pleasanter" requested by the login.
Login failed for user '<DBユーザー>'.

ログを見ると、Azureのデータベースにはちゃんとテーブルが作成されていました。
つまり、DB 作成や初期テーブル展開はかなり進んでいる一方で、一部の処理だけ別のDB名 Implem.Pleasanter を見に行って失敗している 状態でした。

原因その2: Implem.Pleasanter の設定がどこかに残っていた

Service.jsonNameImplem.Pleasanter があり、Azure SQL Database 構成では、ここに 実際に使う Azure SQL Database の DB 名 を設定する必要があります。

Service.json のイメージは以下です。

{
  "Name": "Azureのデータベース名"
}

この設定が Implem.Pleasanter になっていると、今回のように 最後の一部処理だけ Implem.Pleasanter で接続に失敗します。

Service.jsonName をAzure SQL Databaseのデータベース名に変更すると動作しました。

結局どうしたか

今回は、Service.json の初期値との整合性を優先し、Azure SQL Database 側のデータベース名をImplem.Pleasanter にそろえる形で対応しました。

Service.json 側を書き換える方法でも解決できますが、今回は設定ファイルの変更箇所を最小限にしたかったため、Azure SQL Database 側のデータベース名を合わせる方法を選びました。

さいごに

今回は、プリザンターを Windows Server と Azure SQL Database の構成でセットアップした際に遭遇したエラーと、その対処内容をまとめました。

最初は SQL Server Management Studio で接続できていたため安心していましたが、実際にはプリザンター側の設定が Azure SQL Database 向けにそろっているかどうかが重要でした。

特に Rds.jsonService.json の設定値がずれていると、今回のように一部の処理だけ別のデータベース名を参照して失敗することがあります。
これから同じような構成でプリザンターを構築する方の参考になれば幸いです。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?