Joh*_*ash 4 sql database sqlite django django-models
我有两个sqlite.db文件.我想将db文件表中一列的内容复制到另一列.
例如:
我在db文件中有名为new.db的模型信息:
class Information(models.Model):
info_id = models.AutoField(primary_key = True)
info_name = models.CharField( max_length = 50)
Run Code Online (Sandbox Code Playgroud)
以及名为old.db的db文件中的以下信息模型:
class Information(models.Model):
info_id = models.AutoField(primary_key = True)
info_type = models.CharField(max_length = 50)
info_name = models.CharField( max_length = 50)
Run Code Online (Sandbox Code Playgroud)
我想将old.db列中的info_id和info_name中的所有数据复制到new.db中的info_id和info_name.
我想的是:
manage.py dbshell
Run Code Online (Sandbox Code Playgroud)
然后
INSERT INTO "new.Information" ("info_id", "info_name")
SELECT "info_id", "info_name"
FROM "old.Information";
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.它说new.Information表不存在......任何想法?
您需要将设置文件中的数据库URL切换到db2并运行syncdb以创建新表.之后,最简单的做法就是切换回db1并运行./manage.py dumpdata myapp > data.json,然后再转到db2,然后运行./manage.py loaddata data.json.
之后,您可以从db2中删除不需要的数据.
编辑:另一种方法是使用ATTACHsqlite中的函数.首先,我建议您执行上面的第一步(更改数据库设置并使用syncdb创建表),然后您可以切换回来执行此操作:
./manage.py dbshell
> ATTACH DATABASE 'new.db' AS newdb;
> INSERT INTO newdb.Information SELECT * FROM Information;
Run Code Online (Sandbox Code Playgroud)