这是我在这个网站上的第一个问题,我是Django,SQL和开发的新手。所以这里什么都没有!
操作系统 - Mac OS X 10.10.5。
我正在使用Django v 1.8构建应用程序。项目中的具体内容非常简单 - 它将对现有的 MySQL数据库执行查询。
我目前正在使用MySQL v5.6.27(使用MySQLworkbench 6.3)并将其安装在默认位置。
/usr/local/var/mysql
我花了很多精力使用python脚本用大量数据填充这个数据库。数据库是项目的关键,我想用django app查询。
接下来,我在我的项目中配置我的settings.py文件,使用mysql而不是默认的sqlite。
projectroot/projectname/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'APP_stock_data', #Name of the DB I have my data in
'USER': 'User',
'PASSWORD': 'my-pw', #Changed for this post
'HOST': 'localhost',
'PORT': '',
}
}
问题/请求:
这是我一直试图做的没有运气的事情:
MySQL数据库有大量数据。我想用Django应用程序发送该数据库。如何将mySQL数据库导入我的Django应用程序?我是否进行了mysql转储并将数据转储到数据库目录中? (例如下面的例子)
/projectroot/database
我还希望能够创建新表,这样我就可以创建用户模型,新帖等。计划只是通过迁移在每个应用程序中创建新模型。一旦它在上面列出的目录中,我是否可以简单地对此数据库进行正常迁移,而不会影响现有数据的完整性?
答案 0 :(得分:0)
使用django python manage.py inspectdb > models.py
命令:
function brushed() {
time.domain(brush.empty() ? navTime.domain() : brush.extent())
.range([0, (width)]);
x.domain(max_extent_in_days(time))
.rangeBands([margin.left, (width)], 0.1, 0);
focus.selectAll('.bar.stack')
.attr('transform', function(d) {return "translate(" + time(d.date) + ",0)"; })
.attr('width', x.rangeBand());
focus.selectAll('.rect')
.attr('width', x.rangeBand());
focus.selectAll('.line').attr('d', line);
focus.select(".x.axis").call(x_axis);
};
这会将所有数据库表导出到模型类。但是,您需要首先连接到旧数据库,但此命令不会触及数据库记录,而只是读取架构。
如果您只想继续使用原始数据库,那就是它。否则,您可以将sql转储到文件中并将其导入新数据库。最后,您只需要将django配置为指向正确的数据库。
Django有解释how to integrate with legacy database的文档。