I have an App Engine web app in production. I defined a field in a
database table as a string with no length.

        Field('description'),

Now I find that the field needs to handle 2,000 characters. That means
that the field needs to be changed in the Datastore entity from a
ByteString type to a Blob type. I don't,however, want to accidentally
delete data, and I'm unsure how to safely convert the field to handle
a 2K string.

I did try one thing. I changed the field to

        Field('description', length = 2048),

When I deployed the new code, the field remained a string and an
attempt to store more than 500 characters caused an exception.

So is there any way to migrate the existing string field to a blob?
And if so, how would one go about it?

By the way, there was already a bit of a mismatch. The default string
field in the DAL is supposed to be 512 bytes. When deployed on
appengine, that causes the creation of a ByteString which has a
maximum size of 500 characters.

Reply via email to