=========================FAQ: Databases and models=========================.. _faq-see-raw-sql-queries:How can I see the raw SQL queries Django is running?====================================================Make sure your Django :setting:`DEBUG` setting is set to ``True``.Then do this::>>> from django.db import connection>>> connection.queries[{'sql': 'SELECT polls_polls.id, polls_polls.question, polls_polls.pub_date FROM polls_polls','time': '0.002'}]``connection.queries`` is only available if :setting:`DEBUG` is ``True``.It's a list of dictionaries in order of query execution. Each dictionary hasthe following::``sql`` -- The raw SQL statement``time`` -- How long the statement took to execute, in seconds.``connection.queries`` includes all SQL statements -- INSERTs, UPDATES,SELECTs, etc. Each time your app hits the database, the query will be recorded.If you are using :doc:`multiple databases</topics/db/multi-db>`, you can use thesame interface on each member of the ``connections`` dictionary::>>> from django.db import connections>>> connections['my_db_alias'].queriesIf you need to clear the query list manually at any point in your functions,call ``reset_queries()``, like this::from django.db import reset_queriesreset_queries()Can I use Django with a preexisting database?=============================================Yes. See :doc:`Integrating with a legacy database </howto/legacy-databases>`.If I make changes to a model, how do I update the database?===========================================================Take a look at Django's support for :mod:`schema migrations<django.db.migrations>`.If you don't mind clearing data, your project's ``manage.py`` utility has a:djadmin:`flush` option to reset the database to the state it was inimmediately after :djadmin:`migrate` was executed.Do Django models support multiple-column primary keys?======================================================No. Only single-column primary keys are supported.But this isn't an issue in practice, because there's nothing stopping you fromadding other constraints (using the ``unique_together`` model option orcreating the constraint directly in your database), and enforcing theuniqueness at that level. Single-column primary keys are needed for things suchas the admin interface to work; e.g., you need a single value to specifyan object to edit or delete.Does Django support NoSQL databases?====================================NoSQL databases are not officially supported by Django itself. There are,however, a number of side projects and forks which allow NoSQL functionality inDjango.You can take a look on `the wiki page`_ which discusses some projects... _the wiki page: https://code.djangoproject.com/wiki/NoSqlSupportHow do I add database-specific options to my CREATE TABLE statements, such as specifying MyISAM as the table type?==================================================================================================================We try to avoid adding special cases in the Django code to accommodate all thedatabase-specific options such as table type, etc. If you'd like to use any ofthese options, create a migration with a:class:`~django.db.migrations.operations.RunSQL` operation that contains``ALTER TABLE`` statements that do what you want to do.For example, if you're using MySQL and want your tables to use the MyISAM tabletype, use the following SQL::ALTER TABLE myapp_mytable ENGINE=MyISAM;