Jak przenieść ASP.NET baza danych MVC z LocalDb do SQL Server?

I created a new ASP.NET projekt MVC 5 w Visual Studio 2013 (Express for Web) i domyślnie projekt używa LocalDb jako bazy danych, ale jak przenieść lub przenieść bazę danych do SQL Server?

Chcę użyć SQL Server dla bazy danych zamiast LocalDb. Ale jak?

Author: doncadavona, 2015-03-18

7 answers

Pomimo tego, że to pytanie jest stare, odpowiedź mi nie pomogła, więc chcę podzielić się tym, jak rozwiązałem je dla siebie.

W Server Explorer Znajdź swój ASPNet DB. Następnie otwórz go za pomocą SQL Server Object Explorer.

Tutaj wpisz opis obrazka

Następnie przejdź i naciśnij porównanie schematu opcja

Porównaj Schematy

Następnie w oknie porównywania schematu dla docelowej bazy danych wybierz bazę danych SQL Server, z którą ASPNet DB ma zostać zintegrowany. Następnie naciśnij Porównaj button

Ustaw Opcje

Usuń zaznaczenie wszystkich operacji usuwania dla docelowej bazy danych i pozostaw zaznaczone wszystkie operacje dodawania dla ASPNet DB, a następnie naciśnij przycisk Aktualizuj.

Aktualizacja

Na koniec zaktualizuj łańcuch połączeń tak, aby wskazywał na Twój SQL Server DB

 34
Author: Overlord,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-01 03:55:16

Mam!

Bazując na odpowiedzi @warheat1990, musisz tylko zmienić ciąg połączenia. Ale odpowiedź @warheat1990 trochę za bardzo się zmieniła. Oto mój oryginalny (LocalDb) ciąg połączeń:

<add name="DefaultConnection"
     connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-my_project-20150318100658.mdf;Initial Catalog=my_project-20150318100658;Integrated Security=True"
     providerName="System.Data.SqlClient"/>

Aby podłączyć go do SQL Server zamiast LocalDB, zmodyfikowałem łańcuch połączeń do:

<add name="DefaultConnection"
     connectionString="Data Source=SERVERNAME\SQLEXPRESS;Initial Catalog=my_project;Integrated Security=True"
     providerName="System.Data.SqlClient"/>

podziękowania dla @warheat1990 za pomysł prostej zmiany sieci.config. Moje pierwsze myśli były do identyfikacji i korzystania z funkcji, że vs dostaw, jeśli istnieje jakiekolwiek. Ponieważ Microsoft nie ma zwięzłej dokumentacji, jak to zrobić.

 19
Author: doncadavona,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-01 02:22:00

Zmień connectionString w swojej sieci.config

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-KlikRX-20141203034323.mdf;Initial Catalog=aspnet-Test-20141203034323;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

Do własnej bazy danych connectionString, na przykład:

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=7.7.7.7\sql;Initial Catalog=TestDB;User ID=sa;Password=sa" />
  </connectionStrings>
 6
Author: warheat1990,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-18 03:11:16

Wygląda na to, że chcesz przenieść dane z lokalnej bazy danych do serwera sql. Jeśli tak, najprostszym sposobem na to jest utworzenie kopii zapasowej lokalnej bazy danych, a następnie przywrócenie jej na serwerze.

To back up: https://msdn.microsoft.com/en-us/library/ms187510.aspx#SSMSProcedure

Aby przywrócić: https://msdn.microsoft.com/en-us/library/ms177429.aspx

EDIT:

Jeśli chcesz zainstalować instancję SQL Serwer: https://msdn.microsoft.com/en-us/library/ms143219.aspx

 3
Author: Brennan Pope,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-18 06:10:39

Miałem ten sam problem i po prostu go rozwiązałem. this...so głównym punktem jest domyślny łańcuch połączeń...które trzeba poprawnie zmodyfikować w przeciwnym razie jest to bezcelowe..i niemożliwe do prawidłowego połączenia. Więc skopiuj wszystkie aspnetroles...users table to online database (powinny wyglądać tak samo jak w lokalnej bazie danych). Można porównać schemat (lokalny db) z rzeczywistym db. Jest dobrze wyjaśnione przez "Overlord" - > Explanation

Ale po pozwala teraz poprawnie zmodyfikować defaultconnection string To jest mój domyślny ciąg przed modyfikacją:

 <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-track_spa-20180502025513.mdf;Initial Catalog=aspnet-track_spa-20180502025513;Integrated Security=True" providerName="System.Data.SqlClient" />

To jest mój zmodyfikowany domyślny ciąg znaków po modyfikacji:

<add name="DefaultConnection" connectionString="Data Source=servername,portnumber;Initial Catalog=AttendanceTrak;Integrated Security=False;User Id=****;Password=*****;Encrypt=True;TrustServerCertificate=False;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

Servername-powinien być twoim serwerem. portnumber-powinien być portem serwera

Zajęło mi wieki, żeby w końcu to działało...ale ta mała sztuczka z domyślnym ciągiem właśnie to zrobiła! Chmiel to pomaga
 0
Author: Jevgenij Kononov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-03 11:08:01

Miałem podobny problem, chcąc wyeksportować z lokalnego db do zdalnego serwera db i napotkałem komunikat o błędzie, na którym nie mogłem znaleźć żadnych informacji, ale odpowiedź przyszła do mnie podczas czytania tego postu, więc przesyłam moją odpowiedź tutaj na wypadek, gdyby ktoś inny miał ten sam problem.

Skonfigurowałem rozwiązanie z indywidualnymi kontami użytkowników. VS wygodnie tworzy db (mdf-file pod App_Data) i connectionstring w sieci.config.

W całej mojej mądrości pomyślałem: "Dlaczego nie przenieść tego na zdalny serwer?"Tak zrobiłem.

Przywróciłem plik mdf na zdalnym serwerze, rozszerzyłem go o kilka prostych tabel dla mojej strony internetowej, utworzyłem nowe połączenie z db i dodałem nowy ado.net edmx-plik, usunięto "DefaultConnection" w sieci.config i zaktualizowane odniesienie do mojego nowego połączenia w ApplicationDBContext.

Wciśnięty play, i... brak sigar (przy próbie zalogowania).

The entity type IdentityUserLogin is not part of the model for the current context.

Okazuje się, że IdentityDbContex preferuje "DefaultConnection" z providerName = " System.Data.SqlClient " tak więc dodanie nowego pliku edmx z systemem providerName=".Data./ Align = "left" /

Rozwiązanie: jak zasugerował warheat1990, zaktualizowałem (odłożyłem) DefaultConnections i jest to wartość connectionstring.

Można by argumentować, że powinienem mieć dwa oddzielne db (jeden dla użytkowników) i jeden dla rzeczy biznesowych, ale to inna dyskusja.

 0
Author: hormberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-06 07:53:28

Nie możesz się tak bronić. Nie ma tam interfejsu SSMS do wykonywania kopii zapasowej. Będziesz musiał wykonać kopię pliku MDF localDB i dołączyć go do SQL Server Express (lub wyższego). Następnie możesz przenieść pliki lub wykonać kopię zapasową-przywracanie.

 -4
Author: Umar AlFarooq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-20 22:10:09