datalevin 2025-04-07

Hey 👋 just trying to learn datalevin, at the very beginning of the journey and clearly already I’m doing something silly here… 😉 I’m running the datalevin docker container from the docker hub. Connecting via (def conn (d/get-conn "" schema)) Following the README, I’m trying to:

(d/transact conn
            [{:name "Frege",     :db/id -1, :nation "France", :aka ["foo" "fred"]}
             {:name "Peirce",    :db/id -2, :nation "france"}
             {:name "De Morgan", :db/id -3, :nation "English"}])
...and… this just hangs 🤷 Just poking around I see that there is d/transact! which seems to work fine. Any advice on what I might be doing wrong?

Hi @huahaiy — thanks! yes, transact! works fine and other things as well, and I do see the server logs, so I think it is running 🙂 > The default port is 8898, are you sure your changed the port? In the docker README the example uses 8899 as the exposed port: https://github.com/huahaiy/docker-datalevin/blob/a880007e5b4605cc7fee4c51d320a6cad2ca1deb/README.md?plain=1#L12 As a matter of fact after reading the main datalevin docs I’ve tired on the default port and it didn’t work.

Starting the docker again today I notice WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested so maybe that? I ofc don’t have enough insight to know if that means it could selectively work i.e. (`transact!` works, but transact doesn’t) If so I could maybe build the arm64 image (mac, apple silicon) image for myself?

A multiple platform docker image would be nice. PR welcome

Do you have a server running?

Effectively no one I know uses d/transact , so it's surprising to myself that it is in README. updated.

👍 1

d/transact is recently changed to be a blocked version of d/transact-async. But it is probably escaped testing the client/server version of it. Let me see.

Well, we actually do have tests for this. So it's likely you hit some other error.

You probably don't have a server running at that port.

The default port is 8898, are you sure your changed the port?