Ich habe einige Sites mit MongoDB zu Heroku bereitgestellt, aber dies ist das erste Mal, dass ich eine Website mit SQL erstellt und versucht habe, zu implementieren zu Azure, also vermisse ich wahrscheinlich etwas Offensichtliches.Ich kann keine Verbindung mit SQL Azure-Datenbank mit Sequelize, aber SQL Server auf localhost funktioniert
Ich habe eine Website auf meinem Dev-Computer mit Node.js, einer SQL Server-Datenbank und Sequelize als ORM entwickelt. Alles funktioniert gut, aber als ich versucht habe, Azure mit einer Verbindungszeichenfolge zu implementieren, kann ich keine Verbindung mit der SQL Azure-Datenbank herstellen. Ich kann SQL Server Management Studio verwenden, um eine Verbindung mit der leeren Datenbank in Azure herzustellen, daher bin ich sicher, dass meine Verbindungsinformationen korrekt sind.
Wenn ich zu Azure bereitstellen versuchte, habe ich versucht, mit der Verbindungszeichenfolge, dass Azure bietet:
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;');
Wenn ich versuche, mit dieser Zeichenfolge zu verbinden, die Fehler, die ich bekommen ist:
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
ist die Verbindungszeichenfolge zur Datenbank.
Wenn ich versuche, meine Verbindung mit den folgenden zu konfigurieren, stürzt der Server nicht mehr ab oder gibt einen Fehler, aber keiner der Inhalte, die durch den Code im Schema erstellt werden sollen, wird erstellt. Dieser Code sieht wie folgt aus:
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
}
});
Meine ursprüngliche Verbindung zu meinem localhost (der gut arbeitet) sieht wie folgt aus:
var Sql = require('sequelize');
var sql = new Sql('dbname', 'username', 'password', {
host: 'localhost',
dialect: 'mssql',
pool: {
max: 5,
min: 0,
idle: 10000
}
})
Vielen Dank im Voraus für alle Hilfe!
Wenn ich es richtig verstanden beziehen kann, wird Ihre Anwendung auf Heroku und Ihre Datenbank in Azure ausgeführt wird, Recht? Hast du die Firewall überprüft? –
@BrunoFaria Danke, dass du zu mir zurückkehrst. Nichts ist auf Heroku, die gesamte App läuft auf Azure. Ich habe nur Heroku erwähnt, weil ich zuvor noch nicht auf Azure eingesetzt habe und ich versuche, Dinge auf eine Art "Heroku" zu machen, wenn es in Azure anders geht. – CascadiaJS
Ist die SQL Azure-Firewall für Azure-Dienste aktiviert? Andernfalls müssen Sie die Frontend-IP manuell hinzufügen. –