Integrere MS SQL Server med Django

Integrere MS SQL Server med Django

Christian De Frène
Christian De Frène
12. desember 2024

Installasjon

Start med å installere databaseadapteren mssql-django med pakkebehandleren du bruker for Python. Vi la til MS SQL gjennom Djangos multi-DB-funksjonalitet, slik at applikasjonen kan velge hvilken database den skal koble til. Konfigurer DATABASES i settings.py, og bruk disse miljøvariablene for tilkoblingen:

  • DB_HOST : Adressen til databasetjeneren
  • DB_PORT : Porten til databasetjeneren (standard for MS SQL er 1433)
  • DB_NAME : Navnet på databasen (standard for MS SQL er master )
  • DB_USER : Brukeren som kobler til (standard for MS SQL er sa )
  • DB_PASSWORD : Passordet til brukeren som kobler til

Ytterligere konfigurerbare valg for adapteren er beskrevet i den offisielle dokumentasjonen: https://github.com/microsoft/mssql-django#options

Testing

For å teste tilkoblingen før utrulling kan du starte en lokal databasetjener. Microsoft tilbyr et Docker-image, og vi har laget en Docker Compose-fil som gjør oppsettet enklere. Bytt image-taggen 2019-latest hvis du vil bruke en annen databaseversjon.

Django

I tillegg til databasetjeneren må du installere Microsofts ODBC-driver og de nødvendige systempakkene lokalt. De samme avhengighetene må være med i containeren dersom du bygger et Docker-image av Django-applikasjonen.

For mer informasjon, se denne installasjonsguiden.

Test tilkoblingen lokalt før du går videre til utrulling.

Fallgruver

Det er enkelt å komme i gang med MS SQL i Django, men teknologien har andre egenskaper enn PostgreSQL. Sjekk særlig om løsningen bruker PostgreSQL-spesifikke felttyper, som ArrayField, og om det finnes en tilsvarende type i MS SQL før du bytter database.

Databaseadapteren har også noen begrensninger, blant annet knyttet til datofelt med tidssone. Vi anbefaler å lese gjennom listen for å se om det er noen dealbreakere for akkurat din applikasjon. I vårt tilfelle var vi nødt til å gjøre manuelle endringer i enkelte migrasjonsfiler for at disse kunne utføres på MS SQL-tjeneren uten problemer.

Til slutt en påminnelse hvis du skriver rå SQL-spørringer; MS SQL-syntaksen er ulik f.eks. PostgreSQL sin. Vi antar de fleste som bruker Django i stor grad forholder seg til ORMen, men om du har områder som ikke gjør det er du nødt til å skrive om spørringene.

Fra idé til et produkt klart for markedet

La oss utforske mulighetene sammen

Kom i gang

Relaterte artikler