Skip to content

Commit b75401c

Browse files
committed
Merge parent [PR dvanderweele#6](dvanderweele#6)
2 parents 8858e3b + 7a4330d commit b75401c

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

dbml_sqlite/core.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from ast import IsNot
12
import re
23
import os
34
import uuid
@@ -82,6 +83,7 @@ def processFile(target: Path, emulationMode: str, tableExists=True, indexExists=
8283
for table in parsed.tables:
8384
for index in table.indexes:
8485
statements.append(processIndex(table, index, idxNameFunc, indexExists=indexExists, join=False))
86+
break # We just need a single multi-field primary key
8587
statements = list(chain.from_iterable(statements))
8688
if join:
8789
statements = "".join(statements)
@@ -167,6 +169,11 @@ def processTable(table: Table, emulationMode, tableExists=True, join=True):
167169
segments.append(processRef(ref, False))
168170
if j < len(table.get_refs()) - 1:
169171
segments.append(',\n')
172+
if hasattr(table, 'indexes'):
173+
for k, index in enumerate(table.indexes):
174+
if(index.pk):
175+
segments.append(',\n')
176+
segments.append(index.sql)
170177
segments.append('\n);\n')
171178
segments = list(chain.from_iterable(segments))
172179
if join:

tests/test_dbml_sqlite.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ def test_process_table():
158158
def test_process_file():
159159
p = Path('./tests/abc.dbml')
160160
o = processFile(p, 'full', True, True, MockNameFunc)
161-
assert o == 'CREATE TABLE IF NOT EXISTS mytab (\n name TEXT,\n phone INTEGER\n);\nCREATE INDEX IF NOT EXISTS _mockname ON mytab (name, phone);\n'
161+
assert o == 'CREATE TABLE IF NOT EXISTS mytab (\n name TEXT,\n phone INTEGER,\nPRIMARY KEY ("name", "phone")\n);\nCREATE INDEX IF NOT EXISTS _mockname ON mytab (name, phone);\n'
162162

163163
def test_process_index():
164164
mytab = MockTable('mytab', [], [])

0 commit comments

Comments
 (0)