diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index d3c3c7aba0..9e96db06a3 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -110,7 +110,7 @@ static void CreateDirAndVersionFile(char *dbpath, Oid dbid, Oid tsid,
 static List *GetDatabaseRelationList(Oid srctbid, Oid srcdbid, char *srcpath);
 static void RelationCopyStorageUsingBuffer(SMgrRelation src, SMgrRelation dst,
 									ForkNumber forkNum, char relpersistence);
-static void CopyDatabase(Oid src_dboid, Oid dboid, Oid src_tsid, Oid dst_tsid);
+static void CopyDatabase(Oid src_dboid, Oid dboid, Oid src_tsid, Oid dst_tsid, bool movedb);
 
 /*
  * CreateDirAndVersionFile - Create database directory and write out the
@@ -448,7 +448,7 @@ RelationCopyStorageUsingBuffer(SMgrRelation src, SMgrRelation dst,
  * to the target database, block by block and WAL log all the operations.
  */
 static void
-CopyDatabase(Oid src_dboid, Oid dst_dboid, Oid src_tsid, Oid dst_tsid)
+CopyDatabase(Oid src_dboid, Oid dst_dboid, Oid src_tsid, Oid dst_tsid, bool movedb)
 {
 	char	   *srcpath;
 	char	   *dstpath;
@@ -500,7 +500,12 @@ CopyDatabase(Oid src_dboid, Oid dst_dboid, Oid src_tsid, Oid dst_tsid)
 		 * database.
 		 */
 		if (srcrnode.spcNode != src_tsid)
-			dstrnode.spcNode = srcrnode.spcNode;
+		{
+			if (!movedb)
+				dstrnode.spcNode = srcrnode.spcNode;
+			else
+				continue;
+		}
 		else
 			dstrnode.spcNode = dst_tsid;
 
@@ -1006,7 +1011,7 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt)
 	PG_ENSURE_ERROR_CLEANUP(createdb_failure_callback,
 							PointerGetDatum(&fparms));
 	{
-		CopyDatabase(src_dboid, dboid, src_deftablespace, dst_deftablespace);
+		CopyDatabase(src_dboid, dboid, src_deftablespace, dst_deftablespace, false);
 	}
 	PG_END_ENSURE_ERROR_CLEANUP(createdb_failure_callback,
 								PointerGetDatum(&fparms));
@@ -1560,7 +1565,7 @@ movedb(const char *dbname, const char *tblspcname)
 	PG_ENSURE_ERROR_CLEANUP(movedb_failure_callback,
 							PointerGetDatum(&fparms));
 	{
-		CopyDatabase(db_id, db_id, src_tblspcoid, dst_tblspcoid);
+		CopyDatabase(db_id, db_id, src_tblspcoid, dst_tblspcoid, true);
 
 		/*
 		 * Update the database's pg_database tuple
