1fac1b83dc8526e5922694f1e45de4b9e57c1555
[wolnelektury.git] / apps / south / db / sqlite3.py
1
2 from django.db import connection
3 from south.db import generic
4
5 class DatabaseOperations(generic.DatabaseOperations):
6
7     """
8     SQLite3 implementation of database operations.
9     """
10
11     # SQLite ignores foreign key constraints. I wish I could.
12     supports_foreign_keys = False
13     
14     # You can't add UNIQUE columns with an ALTER TABLE.
15     def add_column(self, table_name, name, field, *args, **kwds):
16         # Run ALTER TABLE with no unique column
17         unique, field._unique, field.db_index = field.unique, False, False
18         generic.DatabaseOperations.add_column(self, table_name, name, field, *args, **kwds)
19         # If it _was_ unique, make an index on it.
20         if unique:
21             self.create_index(table_name, [name], unique=True)
22     
23     # SQLite doesn't have ALTER COLUMN
24     def alter_column(self, table_name, name, field, explicit_name=True):
25         """
26         Not supported under SQLite.
27         """
28         raise NotImplementedError("SQLite does not support altering columns.")
29     
30     # Nor DROP COLUMN
31     def delete_column(self, table_name, name, field):
32         """
33         Not supported under SQLite.
34         """
35         raise NotImplementedError("SQLite does not support deleting columns.")
36     
37     # Nor RENAME COLUMN
38     def rename_column(self, table_name, old, new):
39         """
40         Not supported under SQLite.
41         """
42         raise NotImplementedError("SQLite does not support renaming columns.")