I am trying to migrate the APEX related tables, (such as users, etc.) but it does not look like an easy thing.
I easily can utilize the Data Pump to move any existing Schema, but when I do that on APEX schema, every thing will mixed and goes wrong,
What is really the best way to move APEX schema, has anybody done that?
Yeah, this is a recipe for disaster, not to mention unsupported. You don't want to move the data from some tables.
This is why it's best to have your own user table and a custom auth scheme. That way you can control it and migrate it between instances.
Is your main challenge with users? Do you have a lot of users?
Use Workspace export (from APEX Admin pages) to export your workspace including all users.
Use Application export (from the APEX application builder) to export your applications - the APEX metadata.
Use datapump to export your data schemas.
All quick and easy - I've just done the same this evening to move some applications from one server to another.
There's an APEXExport java utility that you can run from the command line.
You run it like this (plus the needed parameters)
It exports applications and it's perfect for command line automation. I'm just not sure if it does a full workspace (but I'll say it does).
Oh, this blog post from Nick may come in useful: Workspace, application and page export in PL/SQL | APEXPLAINED