MongoDBでHerokuにいくつかのサイトを展開しましたが、これはSQLでサイトを作成して展開しようとした初めてのことですAzureに、私はおそらく何か明白な行方不明です。sequelizeでSQL Azureデータベースに接続できませんが、localhost上のSQL Serverは正常に動作します
私はDevマシン上でNode.js、SQL Serverデータベース、ORMとしてSequelizeを使用してWebサイトを開発しています。すべて正常に動作しますが、接続文字列を使用してAzureにデプロイしようとすると、SQL Azureデータベースに接続できません。 SQL Server Management Studioを使用してAzureの空のデータベースに接続することができますので、接続情報が正しいことを確認します。
私はアズールに展開しようとしたとき、私はアズールが提供する接続文字列を試してみました:
var Sql = require('sequelize');
var sql = new Sql('Driver={SQL Server Native Client 11.0};Server=tcp:server.database.windows.net,1433;Database=databasename;[email protected];Pwd={password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;');
を、私はこの文字列で接続しようとすると、私が取得エラーは次のとおりです。
C:\Users\username\Documents\GitHub\event-site\node_modules\sequelize\lib\sequelize.js:110
options.dialect = urlParts.protocol.replace(/:$/, '');
^
TypeError: Cannot read property 'replace' of null
at new Sequelize (C:\Users\v-mibowe\Documents\GitHub\event-site\node_modules\sequelize\lib\sequelize.js:110:40)
at Object.<anonymous> (C:\Users\v-mibowe\Documents\GitHub\event-site\routes\db-routes.js:68:11)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (C:\Users\v-mibowe\Documents\GitHub\event-site\server.js:16:1)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
at startup (node.js:136:18)
at node.js:963:3
db-routes.js:68:11
はdbへの接続文字列です。
次のコードで接続を構成しようとすると、サーバーがクラッシュしたりエラーが発生したりすることはありませんが、スキーマのコードで作成する必要があるコンテンツは作成されません。このコードは次のようになります。事前に
var Sql = require('sequelize');
var sql = new Sql('dbname', 'username', 'password', {
host: 'localhost',
dialect: 'mssql',
pool: {
max: 5,
min: 0,
idle: 10000
}
})
ありがとう:
var Sql = require('sequelize');
var sql = new Sql('dbname', '[email protected]', 'password', {
host: 'server.database.windows.net',
dialect: 'mssql',
driver: 'tedious',
options: {
encrypt: true,
database: 'dbname'
},
port: 1433,
pool: {
max: 5,
min: 0,
idle: 10000
}
});
(正常に動作します)私はlocalhostへの私の元の接続は、次のようになりますすべての助けのために!
にSequelizeの問題レポでsimilar issueを参照することができます右?ファイアウォールをチェックしましたか? –
@BrunoFaria私に戻ってくれてありがとう。 Herokuには何もない、アプリ全体がAzureで走っている。私は以前にアゼールに展開していなかったので、私はHerokuとしか言いませんでした。そして、私は、アズールで異なる方法で "Heroku"のやり方をしようとしているかもしれません。 – CascadiaJS
SQL AzureファイアウォールでAzure Servicesがチェックされていますか?それ以外の場合は、手動でフロントエンドipを追加する必要があります。 –