aplikacja bazodanowa - jak zrobić instalke która utworzy bazę danych mysql

0

Witam,

Napisałem zaliczeniową aplikację bazodanową w c# która operuje na relacyjnej bazie danych mysql. W jaki sposób tworzy się instalkę, która ma utworzyć odpowiedni schemat bazy danych na komputerze użytkownika (na localhost np vertrigo, wamp) w tym wypadku prowadzącego zajęcia?

0
  1. Jeżeli wykorzystujesz ORM (np. Entity Framework, nHibernate) możesz stworzyć aplikację służącą do migracji/tworzenia struktury bazy z wykorzystaniem mechanizmów wchodzących w skład ORM
  2. Jeżeli nie wykorzystujesz ORM, tworzysz plik tekstowy, który zawiera zapytania do serwera bazy danych (tworzące strukturę) i osobno aplikację, która wywołuje komendy opisane w tym pliku na określonym serwerze bazy danych.
0

Narówno Entity Framework (chyba od wersji 5) jak i NHibernate maja możliwość tworzenia schematów. Szczegółów teraz nie pamietam. Są to rozwiązania do stosunkowo prostych operacji typu załuż tabele dodaj kolumnę a nwaet indeksy.
Do bardziej skomplikowanych polecam FluentMigrator przeportowany z Ruby. Przy wykorzytaniu funkcji rozszerzonych można pisać własne mechanimzy aktualizacji ułatwiające pracę. Jedynym mankamentem jest wersja na liczbie co czasem utrudnia zarządzanie migracjami przy wielu gałeżiach kodu.
W obu przypadkach sugeruję aby baza była zakładana i aktualizowana w trakcie stratu aplikacji to troche upraszcza kwestię instalacji. Bardzo sposbały mi się w tym wypadku roziązania EntityFramework które nie tylko tworzyły schemat ale i zakładały bazę jeżeli jej nie bylo. NIe wiem czy takie zakładanie zadziała na MySQL ale na LocalDB działało bez problemu.

1

Pytałeś się o Entity Framework -> poczytaj o EF5 Automatic Migrations (automatyczne wykrywanie zmian w strukturze bazy i aktualizowanie/tworzenie schematu na podstawie zdefiniowanych mapowań) oraz Code-based Migrations (jawne definiowanie migracji w kodzie zarówno przy aktualizowaniu do nowszej wersji jak i schodzeniu do niższej wersji).
Polecana bibliografia:
http://msdn.microsoft.com/en-US/data/jj554735
http://msdn.com/data/jj591621

0
micc napisał(a):
  1. Jeżeli nie wykorzystujesz ORM, tworzysz plik tekstowy, który zawiera zapytania do serwera bazy danych (tworzące strukturę) i osobno aplikację, która wywołuje komendy opisane w tym pliku na określonym serwerze bazy danych.

Czyli chodzi o to że:

  • robie eksport pliku sql z phpmyadmin który tworzy schemat bazy danych oraz przykładowe dane
  • pisze osobną aplikację która pyta o dane do bazy i uruchamia skrypt pobrany z phpmyadmin w którym tworzę nowego usera i bazę (można uruchomić zaeksportowany plik z phpmyadmin aby wykonał się w całości czy w aplikacji każde zapytanie od nowa tworzę i wywołuję? )
0

To nawet nie musi być aplikacja ale jakiś plik skryptowy.
Jeżelisz baza stoi na MySQL to możesz napisać jakiś pliczek .CMD/.BAT wywołujący aplikację kliencką MySQL z odpowiednimi parametrami, który wykona na bazie zawartość wyeksportowanego pliku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1