作爲一個光滑的noob我不明白爲什麼我必須指定我的模型兩次,首先在斯卡拉,然後在1.sql創建表。這看起來不幹。有沒有一種簡單的方法可以在開發過程中從模型生成1.sql(和2..n.sql)?從模型生成1.sql的簡單方法?
0
A
回答
1
我創建了自己SBT任務使用代碼生成容易生成模型1.SQL:在build.sbt文件
:
val generate_schema = taskKey[Unit]("Schema Generator")
generate_schema <<= (fullClasspath in Runtime) map {classpath =>
val loader: ClassLoader = ClasspathUtilities.toLoader(classpath.map(_.data).map(_.getAbsoluteFile))
val schemaGenerator = loader.loadClass("misc.SchemaGenerator").newInstance().asInstanceOf[Runnable]
schemaGenerator.run
}
的misc.SchemaGenerator類:
package misc
import models.Article
import models.Category
import play.api.Logger
import slick.driver.PostgresDriver.api._
import scala.concurrent._
import ExecutionContext.Implicits.global
import scala.reflect.io.File
class SchemaGenerator extends Runnable {
def run = {
println("---------------------GENERATING SCHEMA.....")
val categories = TableQuery[Category]
val articles = TableQuery[Article]
val file = File("/home/pedro/NetBeansProjects/play-scala-angular-sample/my-blog-server/conf/evolutions/default/1.sql")
val sb = new StringBuilder("# --- !Ups \n\n")
categories.schema.create.statements.foreach(st => sb.append(st.toString + ";\n"))
sb.append("\n\n")
articles.schema.create.statements.foreach(st => sb.append(st.toString + ";\n"))
sb.append("\n\n")
sb.append("# --- !Downs")
sb.append("\n\n")
categories.schema.drop.statements.foreach(st => sb.append(st.toString + ";\n"))
sb.append("\n\n")
articles.schema.drop.statements.foreach(st => sb.append(st.toString + ";\n"))
// Logger.info("value: [" + sb + "] sb")
file.writeAll(sb.toString)
Logger.info("----------------------FINISHED GENERATING SCHEMA--------------------------")
}
}
您可以從激活控制檯執行任務:generate_schema
。
希望它有幫助。
0
...自slick 3.0以來不再支持ddl.create。一個動機可以在以下頁面的底部找到:https://www.playframework.com/documentation/2.4.x/PlaySlickMigrationGuide 所以我必須手動編輯我的模式或使用代碼生成。
相關問題
- 1. 模型中的簡單遞歸方法
- 2. 從MS Access數據生成INSERT語句的最簡單方法
- 3. 什麼是從文本生成關鍵字的簡單方法?
- 4. 從矢量生成對角矩陣的簡單方法?
- 5. 使用jquery從上到下生成HTML的簡單方法
- 6. 從SQL Server數據庫中獲取1個單元的更簡單的方法
- 7. 從Simulink模型生成方程
- 8. 從enitity db類創建MVC模型類的最簡單方法
- 9. .Net的簡單SQL語句生成器
- 10. 無法從簡單數據集生成直方圖
- 11. 在Numpy中使用預定義均值從{1,-1}生成隨機數組的最簡單方法是什麼?
- 12. 簡單的算法/方法來生成序列
- 13. 從XML生成SQL模式
- 14. 從Android的生成簡單的JSON
- 15. 查看由SSRS報告生成的SQL查詢的簡單方法?
- 16. 從xml生成django模型
- 17. 從Rails Schema生成模型
- 18. 從類生成CoreData模型
- 19. 從模型生成viewmodel?
- 20. 動態生成表格/從模型生成的動態表單/表單
- 21. 無法生成JSP顯示模型值。簡單的Spring MVC示例
- 22. 簡單的1對1撲滅模擬
- 23. 生成,從1到1
- 24. 生成簡單的方法excel文件的報告與PHP
- 25. 有沒有簡單的方法來生成類似的顏色?
- 26. 如何從生成的模塊生成多模塊原型?
- 27. 如何從流星中的數據庫生成簡單模式
- 28. 從簡單的XSD模式生成Xml文檔
- 29. ASP.net MVC或簡單的C#從模板生成文件
- 30. 如何在Django中從sql模式生成數據模型?
我用過光滑的2.0。我不知道什麼是「1.sql」。 我已經使用$ {tableName} .ddl.create創建表。 – nikiforo
DDL是要搜索的關鍵字。它在3.0中被刪除。 – Hans