• Sure. I've used Django with SQL Server, but have mostly switched to using Flask over Django in the past year.

    Django essentially has a settings file to define what database you will be working with. Here is likely the example your d


    DATABASES = {
      'default': {
       'ENGINE': 'django.db.backends.postgresql',
       'NAME': 'mydatabase',
       'USER': 'mydatabaseuser',
       'PASSWORD': 'mypassword',
       'HOST': '127.0.0.1',
       'PORT': '5432',
      }
    }

    I don't believe Django supports MSSQL out the box, at least not when I used it. In Python, we all pretty much use a module like PyODBC. Django has their own version called django_pyodbc which is also a separate installation if he/she has not installed already. Then you add it just like the example above:


    DATABASES = {
      'default': {
       'ENGINE': 'django_pyodbc',
       'NAME': 'mydatabase',
       'USER': 'mydatabaseuser',
       'PASSWORD': 'mypassword',
       'HOST': '127.0.0.1',
       'PORT': '1433',
      }
    }

    So, that's the connection bit. When it comes to creating the data models. It's all ORM at this point. Anytime the developer includes the Django DB package, it's essentially arming them with everything they need to create tables, pre-generated queries (which you will hate), raw queries, keys, and the works. Here is an example of how easy it is for the developer to create a data model from the class models they define for use in the app:


    from django.db import models

    class Musician(models.Model):
      first_name = models.CharField(max_length=50)
      last_name = models.CharField(max_length=50)
      instrument = models.CharField(max_length=100)

    class Album(models.Model):
      artist = models.ForeignKey(Musician, on_delete=models.CASCADE)
      name = models.CharField(max_length=100)
      release_date = models.DateField()
      num_stars = models.IntegerField()

    This essentially defines he/she needs two tables with these columns set at the data type and lengths within each field. When this is executed, Django will spit out all the SQL needed to create the tables, data types, lengths, keys and relationships if defined within MSSQL.

    With that said, I just kind of wanted to give you an idea of how the developer can define and easily change the models and queries. In terms of source control, all it takes if for them to add one line of code to the end of the code above to add a new field without your knowledge. The best option for you is likely just going to be good communication with the developers to understand when things change and how you can push those changes from your end into source control. Other than that, the Python code is in source control and technically, all the data models and so forth are saved there too.