- Grails - 서버 재시작시 데이터 삭제되지 않게 하기
- 日常茶飯事
- 2009. 4. 6. 00:35
> grails prod run-app //prodDb.script 에 데이터가 저장된다.
grails-app/conf/DataSource.groovy에서 development 설정을 production 과 동일하게 둔다.hsqldb를 사용하므로 파일에 저장되도록 한다.
dbCreate = "create-drop" //update 로 수정한다.
url = "jdbc:hsqldb:mem:devDB" //jdbc:hsqldb:file:devDB;shutdown=true 로 수정한다. devDB.script 에 데이터가 저장된다.
url = "jdbc:hsqldb:mem:devDB" //jdbc:hsqldb:file:devDB;shutdown=true 로 수정한다. devDB.script 에 데이터가 저장된다.
또는 서버 시작시 데이터를 넣는다.
conf/BootStrap.groovy
class BootStrap {
def init = { servletContext ->
new Book(author:"Stephen King",title:"The Shining").save()
new Book(author:"James Patterson",title:"Along Came a Spider").save()
}
def destroy = {
}
}
def init = { servletContext ->
new Book(author:"Stephen King",title:"The Shining").save()
new Book(author:"James Patterson",title:"Along Came a Spider").save()
}
def destroy = {
}
}
- 참고 : each문 사용
class BootStrap {
def init = { servletContext ->
if(GrailsUtil.environment == "development"){
new Tag(name:"Work").save()
new Tag(name:"Home").save()
new Tag(name:"Study").save()
def admin = new User(userId:"admin", password:"grails").save()
def testUser = new User(userId:"test", password:"test").save()
def testUser2 = new User(userId:"testA", password:"test").save()
(1..11).each{
new Entry(title:"$it", content:"content$it", user:admin).save()
}
new Entry(title:"test", content:"content", user:testUser).save()
new Entry(title:"123", content:"456", user:testUser2).save()
}
}
def destroy = {
}
}
Recent comment