Trying to migrate in Django 1.9 -- strange SQL error "django.db.utils.OperationalError: near ")": syntax error"

This appears to be the line that's causing the errror:

 INSERT INTO "optilab_lasersubstrate" () SELECT  FROM "optilab_lasersubstrate__old";

You are usually expected to have a list of columns in those parenthesis. Eg INSERT INTO "optilab_lasersubstrate" (col1,col2,etc) however the migration has produced a blank set! Similarly the SELECT FROM portion should read as SELECT col1,col2 FROM. By some strange set of events you appear to have managed to create a table with no columns!!

I see from your migration file that you are anyway dropping this table. So there isn't any reason to struggle with the RemoveField portion. It's code associated with the RemoveField that's causing the error. Change your migration as follows:

class Migration(migrations.Migration):

    dependencies = [
        ('optilab', '0005_test'),
    ]

    operations = [
        migrations.DeleteModel(
            name='LaserSubstrate',
        ),
        migrations.DeleteModel(
            name='WaveguideSubstrate',
        ),
    ]