mito
mito copied to clipboard
not valid mysql create table sql
CL-USER> (mito:connect-toplevel :mysql :database-name "v****" :username "****" :password "********") #<DBD.MYSQL:<DBD-MYSQL-CONNECTION> {1007644EA3}> CL-USER> (mito:deftable user() ((name :col-type (:varchar 64)) (email :col-type (or (:varchar 128) :null)))) #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::USER> 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:<DBI-PROGRAMMING-ERROR> {1005254273}> [1] CL-USER> DB Error: Invalid default value for 'updated_at' (Code: 1067) [Condition of type DBI.ERROR:<DBI-PROGRAMMING-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-CONNECTION> DBD.MYSQL:<DBD-MYSQL-QUERY> T)) #<DBD.MYSQL:<DBD-MYSQL-CONNECTION> {1001897A23}> #<DBD.MYSQL:<DBD-MYSQL-QUERY> {10052530..
1: ((:METHOD DBI.DRIVER:DO-SQL (DBI.DRIVER:<DBI-CONNECTION> STRING)) #user
( ..) [fast-method]
3: ((SB-PCL::EMF MITO.DB:EXECUTE-SQL) #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))) #<NULL-LEXENV>)
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--
@lidh04 - I run into the same problem today and I suspect it has something to do with:
- Version of MySQL
- Default settings associated with that version
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 mito
s queries); I then switched to mysql:8.0.21
and the error disappeared.