does anyone know how to handle a "one to many" relationship with Grails/GORM on the google appengine?
I do understand how relationships get handled with Gorm, and there is also a good series of articles about it:
http://blog.springsource.com/2010/06/23/gorm-gotchas-part-1/
http://blog.springsource.com/2010/07/02/gorm-gotchas-part-2/
http://blog.springsource.com/2010/07/28/gorm-gotchas-part-3/
But I could not find any examples about releastionships within the appengine and JPA.
Have you tried Gaelyk? Its a pretty good framework for running groovy on google app engine. The following link goes over the datasource with groovy on GAE: http://gaelyk.appspot.com/tutorial/app-engine-shortcuts#datastore
I haven't tried it, but as far as I've read, you have to use JPA annotations. See here: http://blogs.oracle.com/enterprisetechtips/entry/combining_groovy_grails_mysql_and
Related
I'm trying to migrate a project from DB to NDB and found db._initialize_properties.
I searched a lot but couldn't find anything related to _initialize_properties. Not even in appengine documentation.
Also _initialize_properties is not a custom defined function in project.
Can someone please shed some light on this?
Code :
db._initialize_properties(
model_class, model_class.__name__, model_class.__bases__,
model_class.__dict__)
There's actually no NDB equivalent for that. _initialize_properties is actually a internal function of Appengine DB and can be found at google_appengine/google/appengine/ext/db/__init__.py
If you want to use _initialize_properties with NDB, you need to create a custom function in your project with that name and paste the function definition of _initialize_properties with modifications that would comply with NDB.
I'm an avid GAE/J user, now trying to create my first GAE/go project.
What are the limitations of the AppEngine Go runtime compared to Java or Python runtimes? Missing APIs? Runtime limitations?
https://developers.google.com/appengine/features/ covers what features are implemented by which runtimes.
What I was able to find out so far is:
DB Query: missing composite filters (AND and OR).
DB Query: missing "member of" filter operator (IN).
No App Identity API Edit: this seems to exist, but is not listed under services
No Prospective Search
I have been developing an app using appengine. We are likely to be storing a lot of records in the datastore but I find the admin functionality you are given to manage this data lacking.
As an example, there are no good ways to bulk delete a bunch of data - you have to write a class of your own to do this.
Before I start down the path of building the admin ui and features I need to manage the datastore entities, I was wondering if anyone knows of a good 3rd party tool that's already been written to do this for me? Something that has basic CRUD functionality plus bulk import and bulk export features.
I am using the Python SDK.
You haven't specified whether you're using the Java or Python SDK, but if you're using Java App Engine, I suggest using the Objectify framework to interact with the datastore rather than the standard JDO/JPA method. It's much nicer.
It's a simple question, but I haven't found the answer anywhere. Thoughts and input appreciated.
I'm using Django, too, for what it's worth. :)
Cheers.
The Search API is now available as experimental for Java and Python .
With Java GAE, you could use Compass, but that won't help with Django. For Python, Bill Katz offers one solution -- open source -- and these guys offer a Django-specific approach which, however, is free only for non-commercial applications (i.e. if your app makes money they want you to pay for their full-text search). I have no real-world experience with either of these solutions so I can't really give well-grounded recommendations, but from what one can see with just a little playing around they seem quite useful.
An overview of the Python App Engine searches that I am aware of:
Google did add a cut down search using SearchableModel although that has limitations (5000 indexed word limit, String property only not Text):
http://groups.google.com/group/google-appengine/browse_thread/thread/f64eacbd31629668/8dac5499bd58a6b7?lnk=gst&q=searchablemodel
Or as another posters have pointed out there are these options:
The Quick and simple text search:
http://www.billkatz.com/2009/6/Simple-Full-Text-Search-for-App-Engine
This product which has a fairly comprehensive free version and a more extensive commercial version:
http://gae-full-text-search.appspot.com/customers/download/
I've read that Google do have a project to bring full text search to App Engine although this is not scheduled to happen any time soon
I'd really like to see a comparison of the various searching frameworks and see how they stack up to each other. Does anyone know of any report like this?
Edit:
Google Search API now available (although still experimental)
For now, the real answer is that there is no real full-text search on Google App Engine. The solutions provided by the other answers here are fine for toy data sets, but do not scale to anything more than O(10000) documents or so. Google will have to provide search as an infrastructural feature of GAE. See the feature request for (mostly superfluous) discussion.
# The Quick and simple text search:
http://www.billkatz.com/2009/6/Simple-Full-Text-Search-for-App-Engine
this solution did not work for me - and looking at the limitations below, it is unlikely to be useful for real use cases.
It uses StringListProperty to store phrases which has a limitation of 500 characters.
It does not work with the standard query filters.
Issue 217 Bill Katz released a package to deal with and http://gae-full-text-search.appspot.com/ is available alternatively, levensthein is a another match measure
You should be able to adapt Whoosh! to write in the datastore instead of on disk. It's a pure python full-text search engine. It's not as fast or full-featured as Lucene, but it should run on GAE without too many modifications.
Since ColdFusion is itself Java-based, I would imagine it's not too much of a stretch to suggest that CFML code could be deployed on Google App Engine.
BlueDragon is a commercial solution for deploying CFML code on Java servers.
It's described in this thread how someone got OpenBD (Blue Dragon) running on App Engine:
OpenBD on Google App Engine for Java
Are there any open source alternatives
that could be used for App Engine?
Railo is another obvious candidate here, and some people appear to be trying to tweak it for use on Google App Engine.
I am putting together some demos that run on Open BlueDragon, which in turn is running on Google App Engine. The list is small at the moment, but eventually it should give you a good idea of what is opssible with OpenBD and GAE.
http://www.brighthub.com/hubfolio/matthew-casperson/blog/archive/2010/05/12/cold-fusion-demos.aspx
Check out
http://www.stax.net/ - Stax networks made by a former Allaire(r)?
Works great, supports coldfusion out of the ..cloud. You download a precompiled source file, put your stuff in, upload it and it all works, no fighting with it.
I know google app engine is quite restrictive, it will involve opening up the source and removing everything that attempts to write to the file system, and changing your database interaction.
You can checkout this thread and group as a resource for Open BlueDragon as well as the wiki. Looks like they have a branch already which is working towards GAE compatibility.
On the Railo side of the CFML open source pond you can reference this article from help compiling Railo on your own from the source.
Joining both of their respective google groups and asking questions should yield fruitful as well.
Good Luck!