Hi. I have prisma deployed on google kubernetes en...
# prisma-whats-new
m
Hi. I have prisma deployed on google kubernetes engine. All was going fine until I started modifying object structure (e.g., removing fields, changing constraints, etc.). Now my pod keeps throwing java.sql.SQLSyntaxErrorExceptions and the service is completely unusable.
For example, I had a "userType" field on User that was supposed to take an ENUM. I removed this field. I then re-deployed. Prisma says its deleting the field. Everything looks ok. But the field still shows up in my generated schema. I run re-deploy again. Instead of it telling me that everything is up to date, prisma says its deleting the field again...
a
That is absolutely not intended. Could you file an issue for that?
m
java.sql.SQLSyntaxErrorException: (conn=1776) Unknown column 'userType' in 'field list' at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get (ExceptionMapper.java:163) at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException (ExceptionMapper.java:106) at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue (MariaDbStatement.java:235) at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal (MariaDbPreparedStatementClient.java:224) at org.mariadb.jdbc.MariaDbPreparedStatementClient.execute (MariaDbPreparedStatementClient.java:159) at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute (ProxyPreparedStatement.java:44) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute (HikariProxyPreparedStatement.java) at slick.jdbc.StatementInvoker.results (StatementInvoker.scala:39) at slick.jdbc.StatementInvoker.iteratorTo (StatementInvoker.scala:22) at slick.jdbc.Invoker.first (Invoker.scala:31) at slick.jdbc.Invoker.first$ (Invoker.scala:30) at slick.jdbc.StatementInvoker.first (StatementInvoker.scala:16) at slick.jdbc.StreamingInvokerAction$HeadAction.run (StreamingInvokerAction.scala:52) at slick.jdbc.StreamingInvokerAction$HeadAction.run (StreamingInvokerAction.scala:51) at slick.dbio.DBIOAction$$anon$4.$anonfun$run$3 (DBIOAction.scala:240) at scala.collection.Iterator.foreach (Iterator.scala:929) at scala.collection.Iterator.foreach$ (Iterator.scala:929) at scala.collection.AbstractIterator.foreach (Iterator.scala:1417) at scala.collection.IterableLike.foreach (IterableLike.scala:71) at scala.collection.IterableLike.foreach$ (IterableLike.scala:70) at scala.collection.AbstractIterable.foreach (Iterable.scala:54) at slick.dbio.DBIOAction$$anon$4.run (DBIOAction.scala:240) at slick.dbio.DBIOAction$$anon$4.run (DBIOAction.scala:238) at slick.dbio.DBIOAction$$anon$4.$anonfun$run$3 (DBIOAction.scala:240) at scala.collection.Iterator.foreach (Iterator.scala:929) at scala.collection.Iterator.foreach$ (Iterator.scala:929) at scala.collection.AbstractIterator.foreach (Iterator.scala:1417) at scala.collection.IterableLike.foreach (IterableLike.scala:71) at scala.collection.IterableLike.foreach$ (IterableLike.scala:70) at scala.collection.AbstractIterable.foreach (Iterable.scala:54) at slick.dbio.DBIOAction$$anon$4.run (DBIOAction.scala:240) at slick.dbio.DBIOAction$$anon$4.run (DBIOAction.scala:238) at slick.dbio.SynchronousDatabaseAction$FusedAndThenAction.$anonfun$run$4 (DBIOAction.scala:534) at slick.dbio.SynchronousDatabaseAction$FusedAndThenAction.$anonfun$run$4$adapted (DBIOAction.scala:534) at scala.collection.Iterator.foreach (Iterator.scala:929) at scala.collection.Iterator.foreach$ (Iterator.scala:929) at scala.collection.AbstractIterator.foreach (Iterator.scala:1417) at scala.collection.IterableLike.foreach (IterableLike.scala:71) at scala.collection.IterableLike.foreach$ (IterableLike.scala:70) at scala.collection.AbstractIterable.foreach (Iterable.scala:54) at slick.dbio.SynchronousDatabaseAction$FusedAndThenAction.run (DBIOAction.scala:534) at slick.dbio.SynchronousDatabaseAction$$anon$11.run (DBIOAction.scala:571) at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1 (BasicBackend.scala:240) at slick.basic.BasicBackend$DatabaseDef$$anon$2.run (BasicBackend.scala:240) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748)
Sure...
a
Awesome. Thanks 🙂
m
Is there a way to nuke the mySQL backend from prisma or am I going to have to torch the pod and completely redeploy?
f
For safety I nuke the generated directory each time before a deploy to make sure it overwrites with a new schema
m
I do this too because it apparently only does a really, really shallow compare.
I just restaged for the time being as a work around.