Подключение и миграция основного веб-приложения .net к базе данных, управляемой цифровым океаном. - PullRequest
0 голосов
/ 07 октября 2019

Я создал веб-приложение .net core 2.1 и хочу перенести свою базу данных в управляемую базу данных Digital Ocean. Я делаю это локально на своем ноутбуке в моей IDE, используя строку подключения к базе данных, предоставленную Digital Ocean.

C: \ Users \ имя пользователя \ source \ repos \ Pojects \ Web \ appname \ appname>Обновление базы данных dotnet ef

После вышеприведенного утверждения я получаю эту ошибку:

System.ArgumentException: ключевое слово не поддерживается: postgresql: // имя_базы_данных: пароль @ database-db-do-user-660-0.db.ondigitalocean.com:25/ddb?sslmode Имя параметра: ключевое слово в Npgsql.NpgsqlConnectionStringBuilder.GetProperty (Строковое ключевое слово) в C: \ projects \ npgsql \ src \ Npgsql \ NpgsqlBunderString:строка 244 в Npgsql.NpgsqlConnectionStringBuilder.set_Item (ключевое слово String, значение объекта) в C: \ projects \ npgsql \ src \ Npgsql \ NpgsqlConnectionStringBuilder.cs: строка 172 в значении System.Data.Common.DbConnectionString_StringBringerEntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists () в C: \ projects \ npgsql-entityframeworkcore-postgresql \ src \ EFCore.PG \ Storage \ Internal \ NpgsqlDatabaseCreator.cs: строка 209 в Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists ()
в Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate (String targetMigration) в Microsoft.EmemeFity. Design.Internal. действие)

Ключевое слово не поддерживается: postgresql: // база данных: passssword@database-db-do-user-660-0.db.ondigitalocean.com: 2 / ddb? sslmode Имя параметра: ключевое слово

Пожалуйста, я хочу знать, правильно ли то, что я делаю.

Теперь мой вопрос.

  1. Я хочу знать, как подключиться к моей базе данных наУправляемая база данных Digital Ocean
  2. Как развернуть приложение .net на цифровую каплю океана и подключиться к базе данных

1 Ответ

0 голосов
/ 08 октября 2019
  1. System.ArgumentException: ключевое слово не поддерживается: postgresql: // имя_базы_данных: password@database-db-do-user-660-0.db.ondigitalocean.com: 25 / ddb? sslmode Имя параметра: ключевое слово

    Этот тип ошибки обычно вызывается неверной строкой соединения. Цитируется из DO документов :

    общий формат postgresql://username:password@hostname:port/database

    Обратите внимание, это не стандартная строка соединения postgresql , которая может напрямую использоваться EFCore. Вам нужно изменить строку подключения, как показано ниже:

    User ID=root;Password=myPassword;Host=database-db-do-user-660-0.db.ondigitalocean.com;Port=25;Database=ddb;Pooling=true;
    
  2. Как развернуть приложение .net в цифровую океаническую каплю и подключиться к базе данных

    Цитируется из Документов DO :

    Дроплеты DigitalOcean - это Виртуальные машины на основе Linux (ВМ) , которые работают на виртуализированном оборудовании

    Другими словами, вам нужно

    1. Следуйте документам Microsoft, чтобы опубликовать свое WebApp
    2. Скопируйте опубликованные файлы приложенийна ваш удаленный сервер. Например, с помощью команды scp: scp your-file-dir user@your-host:/path
    3. Следуйте документации DO для подключения сервера
    4. Настройка обратного прокси-сервера (Nginx / Apache2и т. д.)
    5. Запустите приложение dotnet webApp в качестве службы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...