fukamachi / mito

An ORM for Common Lisp with migrations, relationships and PostgreSQL support
288 stars 31 forks source link

not valid mysql create table sql #61

Open lidh04 opened 4 years ago

lidh04 commented 4 years ago

CL-USER> (mito:connect-toplevel :mysql :database-name "v" :username "" :password "****")

<DBD.MYSQL: {1007644EA3}>

CL-USER> (mito:deftable user() ((name :col-type (:varchar 64)) (email :col-type (or (:varchar 128) :null))))

CL-USER> (mito:table-definition 'user) (#<SXQL-STATEMENT: CREATE TABLE user ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, email VARCHAR(128), created_at TIMESTAMP, updated_at TIMESTAMP )>) CL-USER> (mapc #'mito:execute-sql (mito:table-definition 'user)) ; Debugger entered on #<DBI.ERROR: {1005254273}> [1] CL-USER> DB Error: Invalid default value for 'updated_at' (Code: 1067) [Condition of type DBI.ERROR:]

Restarts: 0: [RETRY] Retry SLY mREPL evaluation request. 1: [*ABORT] Return to SLY's top level. 2: [ABORT] abort thread (#<THREAD "sly-channel-1-mrepl-remote-1" RUNNING {1002773FF3}>)

Backtrace: 0: ((:METHOD DBI.DRIVER:EXECUTE-USING-CONNECTION (DBD.MYSQL: DBD.MYSQL: T)) #<DBD.MYSQL: {1001897A23}> #<DBD.MYSQL: {10052530.. 1: ((:METHOD DBI.DRIVER:DO-SQL (DBI.DRIVER: STRING)) # # # #) [fast-method,more] 2: ((:METHOD MITO.DB:EXECUTE-SQL (SXQL.SQL-TYPE:SQL-STATEMENT)) #<SXQL-STATEMENT: CREATE TABLE user ( ..) [fast-method] 3: ((SB-PCL::EMF MITO.DB:EXECUTE-SQL) # # #<SXQL-STATEMENT: CREATE TABLE user ( ..) 4: (SB-IMPL::MAP1 #<STANDARD-GENERIC-FUNCTION MITO.DB:EXECUTE-SQL (3)> (NIL) NIL T) 5: (MAPC #<STANDARD-GENERIC-FUNCTION MITO.DB:EXECUTE-SQL (3)> (#<SXQL-STATEMENT: CREATE TABLE user ( ..) 6: (SB-INT:SIMPLE-EVAL-IN-LEXENV (MAPC (FUNCTION MITO.DB:EXECUTE-SQL) (MITO.DAO.VIEW:TABLE-DEFINITION (QUOTE USER))) #) 7: (EVAL (MAPC (FUNCTION MITO.DB:EXECUTE-SQL) (MITO.DAO.VIEW:TABLE-DEFINITION (QUOTE USER)))) 8: ((LAMBDA NIL :IN SLYNK-MREPL::MREPL-EVAL-1)) --more--

iamFIREcracker commented 4 years ago

@lidh04 - I run into the same problem today and I suspect it has something to do with:

I copy-pasted a docker-compose.yml file from the Internet and it was linking mysql:5.7 (that version did not seem to like mitos queries); I then switched to mysql:8.0.21 and the error disappeared.