Nalecem na problem pri integraciji sa TravisCI. Problem su testovi koji pisem za DB i migracije na MariaDB 10.4 serveru koji se dize lokalno na Travisu. Resio sam da radim kompletan CI tamo i da "maknem" bilo kakve spoljne uticaje.
E sad, sta se desava... Boldovao sam MariaDB 10.4 iz razloga sto je tu ispravljen problem sa utf8mb4 i duzinom stringa koji se desavao na starijim verzijama. Znaci na lokalnom MDB 10.4 i na deployment serveru sve radi kako treba, travis zeza. Ne mogu da ogranicavam duzinu stringa na 191 jer bih krsio neke druge konvencije, i mislim da vise nema potrebe za tim.
Cisto preventivno, pokusao sam razne izmene u konfiguraciji za travis (.travis.yml) i dzaba, pucaju mi migracije, samim tim i testovi zbog standardnog:
Code:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Napominjem, na MariaDB 10.4 ovo ne bi trebalo da se desava. Pokusao sam bazu da pravim i ovako na .travis.ymlu (samo delovi bitni za bazu su navedeni):
Code:
addons:
mariadb: 10.4
before_script:
- sudo mysql -e 'CREATE DATABASE authbook CHARACTER SET utf8 COLLATE utf8_unicode_ci;'
addons:
mariadb: 10.4
before_script:
- sudo mysql -e 'CREATE DATABASE authbook CHARACTER SET utf8 COLLATE utf8_unicode_ci;'
Pokusavao sam i sa charsetom utf8mb4, sa kolacijom utf8mb4_unicode_ci, sa jos nekim drugim, ali jok, i dalje pucaju migracije. Pravim isto, identicno okruzenje za testiranje kao sto imam i na lokalnom dev serveru, laptopu, deploymentu... bukvalno svuda, samo na travisu puca, i kapiram da bilo ko ko radi CI ovde ima ideju da mi pomogne a da nije ogranicavanje stringa na 191. Takodje, engine je InnoDB, nigde nema greske sem na travisu kada dizem DB server. Cak posle toga ide i trigger na heroku gde umesto MySQLa ide PostgreSQL, sve radi najnormalnije.
Negde ili ja pravim gresku ili Travis jednostavno nije dobro resenje za DB ali moram da napravim izolovano okruzenje.
THE ONLY EASY DAY WAS YESTERDAY