Question

Am I understanding this correctly?

http://docs.datomic.com/transactions.html

You can set :db/txInstant explicitly, overriding the transactor's clock time. When you do, you must choose a :db/txInstant value that is not older than any existing transaction, and not newer than the transactor's clock time. This capability enables initial imports of existing data

Does this mean I can't add facts into datomic that are older than last transaction in a way that the queries as-of will work?

This seems to be a huge restriction. What to do when I interface with other system? For example I may get data about order from yesterday, but clerk only got time to enter it into system today. If somebody entered any facts today I won't be able to add that old data?

Is adding an explicit time attribute and using it in all queries the only option?

Était-ce utile?

La solution

Unfortunately, when you have an application-driven notion of time i.e. the "recorded" time at which some event that you are transacting "now" occurred, you also need an application-driven query mechanism. Look at a similar thread in the Datomic google's group.

So the answer is yes, you'll have to explicitly handle that "recorded" time.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top