未使用pg_restore和pg_dump填充表来转移数据库

时间:2018-07-06 04:15:14

标签: postgresql

我绝对是数据库管理的初学者,但是我正在竭尽全力解决这个问题,而又不需要太多。我有两个PostgreSQL数据库,正在尝试将数据从一个迁移到另一个。我使用java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{68b0359 position=4 id=-1, oldPos=-1, pLpos:-1 no parent} android.support.v7.widget.RecyclerView{387a36d VFED.VC.. ........ 0,0-1080,1428 #7f090009 app:id/DispatchAllrecyclerview}, adapter:com.example.guanlee.xenddriverdemo.Adapter.DeliveryListAdapter@7d9fba2, layout:android.support.v7.widget.LinearLayoutManager@3c7b033, context:com.example.guanlee.xenddriverdemo.Activity.ActDeliveryMenu@46f9476 at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:5421) at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5603) at android.support.v7.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:285) at android.support.v7.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:342) at android.support.v7.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:358) at android.support.v7.widget.GapWorker.prefetch(GapWorker.java:365) at android.support.v7.widget.GapWorker.run(GapWorker.java:396) at android.os.Handler.handleCallback(Handler.java:761) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:6523) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) I/Process: Sending signal. PID: 27993 SIG: 9 Application terminated. 将数据库转储到pg_dump文件中:

.dump

然后,我尝试将数据加载到AWS RDS上的另一个PostgreSQL实例中:

pg_dump -Fc -U my_user -h my_host > mydb.dump

但是,我在新数据库中根本看不到任何数据。我确实看到了终端的输出:

pg_restore -U my_other_user -h my_new_host --clean --create --no-owner mydb.dump

我怀疑所有权存在一些问题?我的新旧数据库名称需要匹配吗?我检查了一下是否有一个新的数据库以我的旧数据库名称在我的新RDS实例中弹出,没有运气。

我尝试添加新数据库并在那里还原:

ALTER TABLE ONLY public.one_table
    ADD CONSTRAINT one_table_fkey FOREIGN KEY (column) REFERENCES public.another_table(id);

--
-- Name: TABLE my_table; Type: ACL; Schema: public; Owner: -
--

GRANT SELECT ON TABLE public.my_table TO "read-only";
GRANT SELECT ON SEQUENCE public.my_table_seq TO "read-only";

--
-- Name: DEFAULT PRIVILEGES FOR SEQUENCES; Type: DEFAULT ACL; Schema: -; Owner: -
--

ALTER DEFAULT PRIVILEGES FOR ROLE my_user GRANT SELECT ON SEQUENCES TO "read-only";

--
-- Name: DEFAULT PRIVILEGES FOR TABLES; Type: DEFAULT ACL; Schema: -; Owner: -
--

ALTER DEFAULT PRIVILEGES FOR ROLE my_user GRANT SELECT ON TABLES  TO "read-only";

--
-- PostgreSQL database dump complete
--

但是恢复后,我什至在Postico(我的GUI客户端)中都看不到这个新数据库。

我知道这不是太多的信息,但是请让我知道我还需要提供其他信息以帮助确定正在发生的事情。我绝对可以尝试逐表还原,但是我更喜欢使用pg_restore -U my_other_user -h my_new_host --clean --create --no-owner -d new_db mydb.dump pg_dump,因为我听说它效率更高,工作量更少(一旦我可以使用它!)

0 个答案:

没有答案