我使用
进行备份pg_dump db_production > postgres_db.dump
然后我使用scp将其复制到localhost。
现在,当我在本地数据库上导入时,它会出错
pg_restore: [archiver] input file appears to be a text format dump. Please use psql.
使用commad line
pg_restore -d db_development postgres_db.dump
答案 0 :(得分:58)
在您投票之前
这只是文档的一部分!
来自pg_dump
文档:
实施例
将名为mydb的数据库转储到SQL脚本文件:
$ pg_dump mydb > db.sql
将此类脚本重新加载到名为newdb的(新创建的)数据库中:
$ psql -d newdb -f db.sql
将数据库转储到自定义格式的存档文件中:
$ pg_dump -Fc mydb > db.dump
将数据库转储到目录格式存档中:
$ pg_dump -Fd mydb -f dumpdir
将存档文件重新加载到名为newdb的(新创建的)数据库中:
$ pg_restore -d newdb db.dump
来自pg_restore
文档:
实施例
假设我们已将名为mydb的数据库转储到自定义格式的转储文件中:
$ pg_dump -Fc mydb > db.dump
删除数据库并从转储中重新创建它:
$ dropdb mydb
$ pg_restore -C -d postgres db.dump
答案 1 :(得分:15)
上面的答案对我不起作用,这有效:
psql db_development < postgres_db.dump
答案 2 :(得分:6)
对我来说,它就像这样工作。 C:\ Program Files \ PostgreSQL \ 12 \ bin> psql -U postgres -p 5432 -d虚拟-f C:\ Users \ Downloads \ d2cm_test.sql >
答案 3 :(得分:2)
对于我来说,当我尝试转储到我使用过的远程主机时
psql -U username -p 5432 -h 10.10.10.1 -d database < db.dump
工作正常。如果不是远程的,那么只需执行以下命令即可。
psql -d database < db.dump
答案 4 :(得分:0)
如果您有完整的数据库转储:
PGPASSWORD="your_pass" psql -h "your_host" -U "your_user" -d "your_database" -f backup.sql
但是,如果您将模式分别保存,则将无法使用。然后,您需要禁用数据插入触发器,类似于pg_restore --disable-triggers
。然后,您可以使用以下代码:
cat database_data_only.gzip | gunzip | PGPASSWORD="your_pass" psql -h "your_host" -U root "your_database" -c 'SET session_replication_role = replica;' -f /dev/stdin
另一方面,我认为这是postgres的非常不幸的缺点。在pg_dump
中创建转储的默认方式与pg_restore
不兼容。但是,有了一些附加键。 WTF?
答案 5 :(得分:0)
要使用与pg_dump
兼容的pg_restore
创建备份,必须在创建转储时使用--format=custom
/ -Fc
。
从文档中
输出适合输入到pg_restore的自定义格式的归档文件。
因此,您的pg_dump
命令可能类似于:
pg_dump --file /tmp/db.dump --format=custom --host localhost --dbname my-source-database --username my-username --password
还有您的pg_restore
命令:
pg_restore --verbose --clean --no-acl --no-owner --host localhost --dbname my-destination-database /tmp/db.dump
答案 6 :(得分:-1)
如果您将pg_dump与-Fp一起使用以纯文本格式进行备份,请使用以下命令:
{all imports}
export default class SelectACDState extends Component {
showACDState = (itemValue, Bcolor) => {
this.setState({});
global.BColor = Bcolor;
global.ACDState = itemValue;
this.setState({});
};
setACDState = (itemValue, itemIndex) => {
AsyncStorage.setItem("ACDState", itemValue);
this.setState({});
global.ACDState = itemValue;
this.showACDState(itemValue);
};
onPress = () => {
this.props.onPressItem(this.props.id);
};
render() {
const { goBack } = this.props.navigation;
return (
<View style={styles.padding2}>
<FlatList
data={[
{ key: `${MLT.t("Abgemeldet")}`, Bcolor: "#FFFFFF" },
{ key: `${MLT.t("Anwesend")}`, Bcolor: "#FFFFAE" },
{ key: `${MLT.t("ACD")}`, Bcolor: "#7BEC36" },
{ key: `${MLT.t("Nachb")}`, Bcolor: "#c8f4b5" },
{ key: `${MLT.t("Pause")}`, Bcolor: "#FAA46B" }
]}
renderItem={({ item }) => (
<View
style={{
backgroundColor: item.Bcolor,
borderWidth: 1,
height: 50,
borderColor: "black"
}}
>
<TouchableOpacity
onPress={() => {
this.showACDState(item.key, item.Bcolor);
goBack();
}}
>
<Text
style={[
styles.rowText,
(style = { fontSize: 30, alignSelf: "center" })
]}
>
{item.key}
</Text>
</TouchableOpacity>
</View>
)}
/>
</View>
);
}
}
将所有数据复制到名称为dbname的数据库