ThriftDB is designed to handle schema changes gracefully. Here are a
few common scenarios:
- Add a new attribute
If you upload a schema with a new attribute, all items (include old
ones) will gain that attribute as well. The default value for any
attribute is null.
- Remove an attribute
If you upload a new schema with an attribute removed, then all items
(including old ones) will lose that attribute as well. You won't be
able to search on the attribute anymore either.
- Change an attribute name
If you upload a new schema with an attribute name changed, then all
items (including old ones) will have that attribute name changed as
well. You can filter on the new attribute seamlessly.
These common scenarios are handled very well by ThriftDB. However, you
will run into problems if you change a datatype (e.g. DateTimeType ->
IntegerType) so be careful with that.
ThriftDB uses the Thrift serialization protocol to implement the
flexible schema feature so it might be helpful to read up on that in
more detail (
http://thrift.apache.org/).
Andres