2009-08-27 22 views
22

Tôi có một ứng dụng Grails tải dữ liệu của nó từ các tệp xml và cung cấp nguồn cấp dữ liệu rss qua rome. Tôi không có bất kỳ lớp miền nào và ứng dụng của tôi không có nguồn dữ liệu. Tôi không muốn Grails tải một bộ nhớ hsql db khi ứng dụng không cần đến nó. Xóa tệp DataSource.groovy ngăn tôi khởi chạy ứng dụng web, có vẻ như nguồn dữ liệu là bắt buộc, nhưng có bất kỳ điều gì tôi có thể làm nếu ứng dụng của tôi không cần nguồn dữ liệu không?Tôi có thể định cấu hình Grails không có nguồn dữ liệu không?

Trả lời

19

Các bước sau đây làm việc cho một ứng dụng mới (Grails 1.1.1) để chạy mà không sử dụng một nguồn dữ liệu:

grails create-app nodb 
cd nodb 
grails uninstall-plugin hibernate 
rm grails-app/conf/DataSource.groovy 
grails create-controller Foo 
<add "render "hi bar" to the index closure of ./grails-app/controllers/FooController.groovy> 
grails run-app 
http://localhost:8080/nodb/foo - prints hi bar 

Đối với một ứng dụng hiện trên ít nhất phiên bản 1.1 (nghĩ đó là khi ngủ đông đã được thực hiện một plugin) bạn sẽ có thể chỉ gỡ cài đặt plugin và xóa tệp DataSource.groovy.

4

Cơ sở dữ liệu trong bộ nhớ rất nhẹ nên bạn nên gắn bó với điều đó nếu bạn không cần một cơ sở dữ liệu thực.

+2

Chúng tôi đã gặp sự cố tương tự. Triển khai thêm sau đó một ứng dụng grails trên cùng một cá thể tomcat với các thiết lập nguồn dữ liệu mặc định không hoạt động. Tôi tin rằng điều này là bởi vì các trường hợp hSQL sử dụng cùng một tập tin trên đĩa khóa hoặc một cái gì đó. – Gennadiy

+2

Vâng, nguồn dữ liệu sản xuất mặc định sử dụng kho dữ liệu tệp hql. Bạn không thể sử dụng cùng tên tệp cho hơn 1 ứng dụng grails, vì vậy bạn cần thay đổi tên cơ sở dữ liệu trong nguồn dữ liệu. Nó khá là khó chịu. Việc có thể không có nguồn dữ liệu sẽ vẫn thích hợp hơn. Ngay cả khi nó nhẹ, nếu bạn không sử dụng nó thì tại sao lại có nó ở đó. –

5

Tôi đã có thể nhận xét nguồn dữ liệu và nhận ứng dụng grails mặc định để chạy. Nhận xét ra phần sản xuất của bạn trong cùng một cách tôi nhận xét ra đoạn mã sau vào datasource.groovy


/* development { 
     dataSource { 
      dbCreate = "create-drop" // one of 'create', 'create-drop','update' 
      url = "jdbc:hsqldb:mem:devDB" 
     } 
    }*/ 

Tôi cũng đã có thể loại bỏ các chế độ ngủ đông cắm sử dụng "grails gỡ bỏ cài đặt plugin ngủ đông" và vẫn có thời gian ứng dụng mặc định . Tôi đã không làm thử nghiệm rộng rãi với điều này nhưng hy vọng điều này làm việc cho bạn.

2

Đây là hướng dẫn tốt: http://digitalbreed.com/2011/using-grails-without-a-database

Xóa plugin Hibernate của Grails.

  1. grails gỡ bỏ cài đặt plugin ngủ đông
  2. Xóa các tập tin cấu hình nguồn dữ liệu conf/DataSource.groovy
  3. Rõ ràng tuyên bố dịch vụ như không giao dịch. Mặc định là true và các phương thức lớp của bạn sẽ được proxy, nhưng không có plugin Hibernate thì không có trình quản lý giao dịch và việc triển khai sẽ thất bại.

    lớp SomeService { tĩnh giao dịch = false // ... }

  4. đối tượng Sử dụng lệnh thay vì đối tượng miền, đặc biệt là nếu bạn cần xác nhận.

Các vấn đề liên quan