Known Issues

Introspecting tables with ‘%’ columns

Attempting to run manage.py inspectdb with DEBUG = True will raise TypeError: not enough arguments for format string. This is due to CursorDebugWrapper and its use of % format strings. If you encounter this problem, you can either rename the database column so it does not include a ‘%’ (percent) character, or change DEBUG = False in your settings when you run manage.py inspectdb.

Introspecting custom fields

Some datatypes will be mapped to a custom model field provided by Django-mssql. If any of these fields are used, it will be necessary to add import sqlserver_ado.fields to the top of the models.py file. If using a version of Django prior to 1.7, it will be necessary to also remove the “models.” prefix from any of these custom fields. Django ticket #21090

Azure requires clustered indices

From http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx#cir

Windows Azure SQL Database (v11 and older) does not support tables without clustered indexes. A table must have a clustered index. If a table is created without a clustered constraint, a clustered index must be created before an insert operation is allowed on the table.

The clustered index requirement [has been removed](http://sqlmag.com/sql-server/indexes-azure-sql-database-v12) in Windows Azure SQL Database v12 and is the recommended over previous versions when possible.

The workaround for older versions is to dump the create SQL, add a clustered index and manually apply the SQL to the database.