@@ -90,50 +90,151 @@ class UserSocialType(StrEnum):
9090 linuxdo = 'LinuxDo'
9191
9292
93- class GenModelColumnType (StrEnum ):
94- """代码生成模型列类型"""
95-
96- BIGINT = 'BIGINT'
97- BINARY = 'BINARY'
98- BIT = 'BIT'
99- BLOB = 'BLOB'
100- BOOL = 'BOOL'
101- BOOLEAN = 'BOOLEAN'
102- CHAR = 'CHAR'
103- DATE = 'DATE'
104- DATETIME = 'DATETIME'
105- DECIMAL = 'DECIMAL'
106- DOUBLE = 'DOUBLE'
107- DOUBLE_PRECISION = 'DOUBLE PRECISION'
108- ENUM = 'ENUM'
109- FLOAT = 'FLOAT'
110- GEOMETRY = 'GEOMETRY'
111- GEOMETRYCOLLECTION = 'GEOMETRYCOLLECTION'
112- INT = 'INT'
113- INTEGER = 'INTEGER'
114- JSON = 'JSON'
115- LINESTRING = 'LINESTRING'
116- LONGBLOB = 'LONGBLOB'
117- LONGTEXT = 'LONGTEXT'
118- MEDIUMBLOB = 'MEDIUMBLOB'
119- MEDIUMINT = 'MEDIUMINT'
120- MEDIUMTEXT = 'MEDIUMTEXT'
121- MULTILINESTRING = 'MULTILINESTRING'
122- MULTIPOINT = 'MULTIPOINT'
123- MULTIPOLYGON = 'MULTIPOLYGON'
124- NUMERIC = 'NUMERIC'
125- POINT = 'POINT'
126- POLYGON = 'POLYGON'
127- REAL = 'REAL'
128- SERIAL = 'SERIAL'
129- SET = 'SET'
130- SMALLINT = 'SMALLINT'
131- TEXT = 'TEXT'
132- TIME = 'TIME'
133- TIMESTAMP = 'TIMESTAMP'
134- TINYBLOB = 'TINYBLOB'
135- TINYINT = 'TINYINT'
136- TINYTEXT = 'TINYTEXT'
137- VARBINARY = 'VARBINARY'
138- VARCHAR = 'VARCHAR'
139- YEAR = 'YEAR'
93+ class GenModelMySQLColumnType (StrEnum ):
94+ """代码生成模型列类型(MySQL)"""
95+
96+ # Python 类型映射
97+ BIGINT = 'int'
98+ BigInteger = 'int' # BIGINT
99+ BINARY = 'bytes'
100+ BLOB = 'bytes'
101+ BOOLEAN = 'bool' # BOOL
102+ Boolean = 'bool' # BOOL
103+ CHAR = 'str'
104+ CLOB = 'str'
105+ DATE = 'date'
106+ Date = 'date' # DATE
107+ DATETIME = 'datetime'
108+ DateTime = 'datetime' # DATETIME
109+ DECIMAL = 'Decimal'
110+ DOUBLE = 'float'
111+ Double = 'float' # DOUBLE
112+ DOUBLE_PRECISION = 'float'
113+ Enum = 'Enum' # Enum()
114+ FLOAT = 'float'
115+ Float = 'float' # FLOAT
116+ INT = 'int' # INTEGER
117+ INTEGER = 'int'
118+ Integer = 'int' # INTEGER
119+ Interval = 'timedelta' # DATETIME
120+ JSON = 'dict'
121+ LargeBinary = 'bytes' # BLOB
122+ NCHAR = 'str'
123+ NUMERIC = 'Decimal'
124+ Numeric = 'Decimal' # NUMERIC
125+ NVARCHAR = 'str' # String
126+ PickleType = 'bytes' # BLOB
127+ REAL = 'float'
128+ SMALLINT = 'int'
129+ SmallInteger = 'int' # SMALLINT
130+ String = 'str' # String
131+ TEXT = 'str'
132+ Text = 'str' # TEXT
133+ TIME = 'time'
134+ Time = 'time' # TIME
135+ TIMESTAMP = 'datetime'
136+ Unicode = 'str' # String
137+ UnicodeText = 'str' # TEXT
138+ UUID = 'str | UUID'
139+ Uuid = 'str' # CHAR(32)
140+ VARBINARY = 'bytes'
141+ VARCHAR = 'str' # String
142+
143+ # sa.dialects.mysql 导入
144+ BIT = 'bool'
145+ ENUM = 'Enum'
146+ LONGBLOB = 'bytes'
147+ LONGTEXT = 'str'
148+ MEDIUMBLOB = 'bytes'
149+ MEDIUMINT = 'int'
150+ MEDIUMTEXT = 'str'
151+ SET = 'list[str]'
152+ TINYBLOB = 'bytes'
153+ TINYINT = 'int'
154+ TINYTEXT = 'str'
155+ YEAR = 'int'
156+
157+
158+ class GenModelPostgreSQLColumnType (StrEnum ):
159+ """代码生成模型列类型(PostgreSQL),仅作为数据保留,并未实施"""
160+
161+ # Python 类型映射
162+ BIGINT = 'int'
163+ BigInteger = 'int' # BIGINT
164+ BINARY = 'bytes'
165+ BLOB = 'bytes'
166+ BOOLEAN = 'bool'
167+ Boolean = 'bool' # BOOLEAN
168+ CHAR = 'str'
169+ CLOB = 'str'
170+ DATE = 'date'
171+ Date = 'date' # DATE
172+ DATETIME = 'datetime'
173+ DateTime = 'datetime' # TIMESTAMP WITHOUT TIME ZONE
174+ DECIMAL = 'Decimal'
175+ DOUBLE = 'float'
176+ Double = 'float' # DOUBLE PRECISION
177+ DOUBLE_PRECISION = 'float' # DOUBLE PRECISION
178+ Enum = 'Enum' # Enum(name='enum')
179+ FLOAT = 'float'
180+ Float = 'float' # FLOAT
181+ INT = 'int' # INTEGER
182+ INTEGER = 'int'
183+ Integer = 'int' # INTEGER
184+ Interval = 'timedelta' # INTERVAL
185+ JSON = 'dict'
186+ LargeBinary = 'bytes' # BYTEA
187+ NCHAR = 'str'
188+ NUMERIC = 'Decimal'
189+ Numeric = 'Decimal' # NUMERIC
190+ NVARCHAR = 'str' # String
191+ PickleType = 'bytes' # BYTEA
192+ REAL = 'float'
193+ SMALLINT = 'int'
194+ SmallInteger = 'int' # SMALLINT
195+ String = 'str' # String
196+ TEXT = 'str'
197+ Text = 'str' # TEXT
198+ TIME = 'time' # TIME WITHOUT TIME ZONE
199+ Time = 'time' # TIME WITHOUT TIME ZONE
200+ TIMESTAMP = 'datetime' # TIMESTAMP WITHOUT TIME ZONE
201+ Unicode = 'str' # String
202+ UnicodeText = 'str' # TEXT
203+ UUID = 'str | UUID'
204+ Uuid = 'str'
205+ VARBINARY = 'bytes'
206+ VARCHAR = 'str' # String
207+
208+ # sa.dialects.postgresql 导入
209+ ARRAY = 'list'
210+ BIT = 'bool'
211+ BYTEA = 'bytes'
212+ CIDR = 'str'
213+ CITEXT = 'str'
214+ DATEMULTIRANGE = 'list[date]'
215+ DATERANGE = 'tuple[date, date]'
216+ DOMAIN = 'str'
217+ ENUM = 'Enum'
218+ HSTORE = 'dict'
219+ INET = 'str'
220+ INT4MULTIRANGE = 'list[int]'
221+ INT4RANGE = 'tuple[int, int]'
222+ INT8MULTIRANGE = 'list[int]'
223+ INT8RANGE = 'tuple[int, int]'
224+ INTERVAL = 'timedelta'
225+ JSONB = 'dict'
226+ JSONPATH = 'str'
227+ MACADDR = 'str'
228+ MACADDR8 = 'str'
229+ MONEY = 'Decimal'
230+ NUMMULTIRANGE = 'list[Decimal]'
231+ NUMRANGE = 'tuple[Decimal, Decimal]'
232+ OID = 'int'
233+ REGCLASS = 'str'
234+ REGCONFIG = 'str'
235+ TSMULTIRANGE = 'list[datetime]'
236+ TSQUERY = 'str'
237+ TSRANGE = 'tuple[datetime, datetime]'
238+ TSTZMULTIRANGE = 'list[datetime]'
239+ TSTZRANGE = 'tuple[datetime, datetime]'
240+ TSVECTOR = 'str'
0 commit comments