|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
Публикация приложения Net Core - создание таблиц базы данных21.12.2019, 08:55. Показов 6522. Ответов 15
Метки нет (Все метки)
Здравствуйте!
Извините за вопросы - только начинаю изучать базы данных. Помогите с созданием таблиц базы данных при публикации на удалённом сервере, пожалуйста! Вот я по учебнику создал небольшое тестовое веб-приложение ASP .NET Core с использованием базы данных. (Учебник Razor Pages) Пробую перенести и опубликовать приложение на VDS сервере. - Windows Server 2019 - установил IIS - установил MS SQL Express - создал новую базу SQL - публикацю сделал через папку (выгрузил на домашнем компе и потом скопировал на сервер) - при публикации - указал путь к новой базе на SQL-сервере В результате: Приложение опубликовалось, сайт работает - но всё, что касается базы данных - не работает. Таблицы в базе данных - не созданы. Вопрос: Как при публикции - автоматически создать таблицы базы данных? Причём там у меня ещё Identity - у неё тоже свои таблицы должны создаться как-то?
0
|
|
| 21.12.2019, 08:55 | |
|
Ответы с готовыми решениями:
15
Фоновые процессы в ASP .NET Core и базы данных Создание минимального запускаемого приложения ASP.NET Core 2 без шаблона в VS Code Передача данных серверу на Asp.Net Core с приложения на .NetFramework |
|
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
|
|
| 21.12.2019, 09:43 | |
|
Миграцию провести надо
0
|
|
|
19 / 17 / 3
Регистрация: 11.05.2018
Сообщений: 166
|
|
| 21.12.2019, 09:54 | |
|
скиньте код хотя бы код
0
|
|
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
| 21.12.2019, 10:28 [ТС] | |
|
А расскажите - как это можно сделать?
0
|
|
|
0 / 0 / 0
Регистрация: 11.11.2018
Сообщений: 1
|
|
| 21.12.2019, 16:48 | |
|
Add-migration, затем update-database.
0
|
|
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
| 21.12.2019, 17:01 [ТС] | |
|
Да я вот не понимаю - он требует указать проект, а где этот проект и как он называется?
Пишу команду: dotnet ef migrations add InitialCreate А он мне в ответ: No project was found. Change the current working directory or use the --project option. Где взять этот проект? В папке, куда файлы публикации выгрузились - нет ничего похожего на слово project Хелп!
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 21.12.2019, 17:08 | |
|
Нужно находится в папке с проектом в это время.
0
|
|
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
| 21.12.2019, 17:17 [ТС] | |
|
А где на сервере папка с проектом? Я же туда только файлы для публикации скачал? Это и есть папка проекта?
Из этой папки пробую - такая же картина: пишет, что нет проекта и требует указания проекта
0
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
|
|
| 21.12.2019, 17:55 | |
|
Zixi, Zixi, миграции лучше всего делать программно, при запуске приложения.
Если руками, то dotnet ef migrations -p ProjectName -s StartupProjectName add InitialCreate-p - указывается проект в котором находится папка с миграциями. -s - указывается стартовый проект, в котором хранится строка подключения. Собственно, ваше веб-приложение .
1
|
|
|
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
|
|
| 21.12.2019, 20:17 | |
|
1. Можно с консоли, можно из консоли в студии. Мне в студии удобнее. Судя по всему у человека уже есть база на локале и он хочет на сервере. Скорее всего update-database достаточно. Хотя вот тут я бы уточнил - может у человека EFCore не установлен?
2. В core не надо инициировать миграции 3. Не понимаю как чувак вообще работает с базой данных, если задает такие вопросы.
0
|
|
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
| 21.12.2019, 20:42 [ТС] | |
|
@IamRain - спасибо большое!
Твой совет - очень помог. Благодаря ему - разобрался с вопросом. Стало понятно, что я не разместил решение (вместе с проектом) на сервере. Я только файлы для публикации копировал на сервер и всё. Скопировал решение с проектом на сервер (они у меня в одной папке). Много и долго экспериментировал с командной строкой - и в результате... ура!... получилось. Сделал миграцию и обновил базу. Всё вроде стало ок. P.S. Не ругайте сильно, пожалуйста! Я первый раз сегодня работал с подобной базой данных. И только начал недавно изучать по учебнику Microsoft веб-приложения. Теперь другая возникла проблема: 1) Если запустить приложение через файл .exe (который в папке публикации) - то показываются локальные пути типа localhost:5001 - и если на сервере открыть браузер и начать работать с веб-приложением - то всё отлично работает. 2) А из интернета (с домашнего компа) - не работает, пишет ошибку (я так понимаю при обращении к базе данных): "An error occurred while processing your request." (см. картинку) И никак не пойму - что можно сделать, чтобы исправить? (если что - у меня на сервере Visual Studio не установлена)
0
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
|
||
| 21.12.2019, 21:14 | ||
|
Добавлено через 2 минуты А так да, вы делали правильно, что копировали на сервер только файлы для публикации.
0
|
||
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
| 22.12.2019, 16:32 [ТС] | |
|
IamRain !
Объясни, пожалуйста, я так и не понял - последовательность моих действий? Вот я скопировал на север папку с файлами для публикации - что я дальше должен сделать? Ведь проектам там - нет? Файлов/папки с миграциями - тоже нет... Что делать дальше?
0
|
|
|
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
|
|
| 22.12.2019, 18:02 | |
|
Берешь строку подключения к базе данных на сервере и проводишь update-database у себя в проекте. Все.
0
|
|
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
| 22.12.2019, 18:15 [ТС] | |
|
У меня же проект на домашнем компе. Там же другая локальная база, встроенная в Visual Studio которая.
А на удалённом сервере - я вообще с базами работать не умею. Её же как-то "расшаривать" для доступа извне надо? А это я как понимаю не рекомендуется в целях безопасности? Да я и не знаю пока как это сделать. Добавлено через 4 минуты Я вот так пока сделал: 1) В Visual Studio в консоли PMC (Консоль диспетчера пакетов) запустили команду: script-migration 2) Visual Studio создала и открыла файл скрипта sql 3) Скопировали этот скрипт себе куда-нибудь 4) На сервере - открыли SQL Server Management Studio 5) Правой кнопкой на нужной базе -> New Query (Новый запрос) - откроется окно для создания SQL-запроса - вставить туда ранее сфомированный в Visual Studio запрос и нажать кнопку Execute (F5 - выполнить запрос) 6) Средствами SQL Server по заданному скрипту - будут созданы необходимые таблицы базы данных Проверил снова на запуске exe-файла - по адресу localhost:5001 - веб-приложение отлично работает. Осталось понять - почему по названию сайта через IIS не работает... Что и где можно посмотреть?
0
|
|
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
| 22.12.2019, 20:17 [ТС] | |
|
Проблема решилась так - надо дать права IIS на работу с базой данных :
1) Надо создать новое подключение к базам SQL Server (Security -> New -> Login) 2) Пользователя надо обязательно назвать по правилу: IIS APPPOOL\ + название вашего пула, в котором находятся приложения Net Core. Например так: IIS APPPOOL\NetCoreApps И указать в настройках User Mapping три роли для нужной базы данных: db_datareader db_datawriter public Я так сделал - и веб-приложение заработало из интернета. Ура! Подводим итоги темы: 1) Миграцию базы данных - делаем через скрипт SQL, созданный в Visual Studio 2) Создаём правильное подключение IIS к SQL Server Вопрос, закрыт. Всем спасибо!
0
|
|
| 22.12.2019, 20:17 | |
|
Помогаю со студенческими работами здесь
16
Создание базы данных на лету, создание и заполнение таблиц в базе DB (Paradox? или..). Создание базы данных и таблиц Создание таблиц базы данных Публикация ASP.NET приложения Создание базы данных, таблиц, типы данных и триггеры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|