Я не особо уверен, что это правильный вопрос, но мне было интересно, где именно хранится моя база данных в Slick.
Например, если я следую примеру на http://slick.typesafe.com/doc/3.0.0/gettingstarted.html
Они создают таблицы:
// Definition of the SUPPLIERS table
class Suppliers(tag: Tag) extends Table[(Int, String, String, String, String, String)](tag, "SUPPLIERS") {
def id = column[Int]("SUP_ID", O.PrimaryKey) // This is the primary key column
def name = column[String]("SUP_NAME")
def street = column[String]("STREET")
def city = column[String]("CITY")
def state = column[String]("STATE")
def zip = column[String]("ZIP")
// Every table needs a * projection with the same type as the table's type parameter
def * = (id, name, street, city, state, zip)
}
val suppliers = TableQuery[Suppliers]
// Definition of the COFFEES table
class Coffees(tag: Tag) extends Table[(String, Int, Double, Int, Int)](tag, "COFFEES") {
def name = column[String]("COF_NAME", O.PrimaryKey)
def supID = column[Int]("SUP_ID")
def price = column[Double]("PRICE")
def sales = column[Int]("SALES")
def total = column[Int]("TOTAL")
def * = (name, supID, price, sales, total)
// A reified foreign key relation that can be navigated to create a join
def supplier = foreignKey("SUP_FK", supID, suppliers)(_.id)
}
val coffees = TableQuery[Coffees]
И тогда они заполняют его
val setup = DBIO.seq(
// Create the tables, including primary and foreign keys
(suppliers.schema ++ coffees.schema).create,
// Insert some suppliers
suppliers += (101, "Acme, Inc.", "99 Market Street", "Groundsville", "CA", "95199"),
suppliers += ( 49, "Superior Coffee", "1 Party Place", "Mendocino", "CA", "95460"),
suppliers += (150, "The High Ground", "100 Coffee Lane", "Meadows", "CA", "93966"),
// Equivalent SQL code:
// insert into SUPPLIERS(SUP_ID, SUP_NAME, STREET, CITY, STATE, ZIP) values (?,?,?,?,?,?)
// Insert some coffees (using JDBC's batch insert feature, if supported by the DB)
coffees ++= Seq(
("Colombian", 101, 7.99, 0, 0),
("French_Roast", 49, 8.99, 0, 0),
("Espresso", 150, 9.99, 0, 0),
("Colombian_Decaf", 101, 8.99, 0, 0),
("French_Roast_Decaf", 49, 9.99, 0, 0)
)
// Equivalent SQL code:
// insert into COFFEES(COF_NAME, SUP_ID, PRICE, SALES, TOTAL) values (?,?,?,?,?)
)
val setupFuture = db.run(setup)
База данных существует исключительно в памяти?
Если я заполню базу данных из текстового файла, база данных останется только в памяти? Если да, то как мне перенести его на диск? Я даже на правильном пути здесь?
mem
, чтобы он записывал данные в файловую систему. - person Patryk Ćwiek   schedule 08.07.2015url = "jdbc:h2:mem:test1"
здесь? - person S2C   schedule 08.07.2015jdbc:h2:~/test
, база данных хранится в пользовательском каталоге. Для Windows это обычно C:\Documents and Settings\‹userName› или C:\Users\‹userName›. Если базовый каталог не задан (как вjdbc:h2:test
), файлы базы данных хранятся в каталоге, в котором запускается приложение (текущий рабочий каталог) (...) Каталог создается автоматически, если он еще не существует. Также можно использовать полное имя каталога (а для Windows — имя диска). Пример:jdbc:h2:file:C:/data/test
- person Patryk Ćwiek   schedule 09.07.2015