<small id='jfS0W'></small><noframes id='jfS0W'>

      <bdo id='jfS0W'></bdo><ul id='jfS0W'></ul>

      <tfoot id='jfS0W'></tfoot>
        <legend id='jfS0W'><style id='jfS0W'><dir id='jfS0W'><q id='jfS0W'></q></dir></style></legend>

      1. <i id='jfS0W'><tr id='jfS0W'><dt id='jfS0W'><q id='jfS0W'><span id='jfS0W'><b id='jfS0W'><form id='jfS0W'><ins id='jfS0W'></ins><ul id='jfS0W'></ul><sub id='jfS0W'></sub></form><legend id='jfS0W'></legend><bdo id='jfS0W'><pre id='jfS0W'><center id='jfS0W'></center></pre></bdo></b><th id='jfS0W'></th></span></q></dt></tr></i><div id='jfS0W'><tfoot id='jfS0W'></tfoot><dl id='jfS0W'><fieldset id='jfS0W'></fieldset></dl></div>
      2. 如何仅在内存中运行 Django 的测试数据库?

        时间:2023-06-01

        <small id='bGy5Q'></small><noframes id='bGy5Q'>

          1. <legend id='bGy5Q'><style id='bGy5Q'><dir id='bGy5Q'><q id='bGy5Q'></q></dir></style></legend>
              <tbody id='bGy5Q'></tbody>
          2. <i id='bGy5Q'><tr id='bGy5Q'><dt id='bGy5Q'><q id='bGy5Q'><span id='bGy5Q'><b id='bGy5Q'><form id='bGy5Q'><ins id='bGy5Q'></ins><ul id='bGy5Q'></ul><sub id='bGy5Q'></sub></form><legend id='bGy5Q'></legend><bdo id='bGy5Q'><pre id='bGy5Q'><center id='bGy5Q'></center></pre></bdo></b><th id='bGy5Q'></th></span></q></dt></tr></i><div id='bGy5Q'><tfoot id='bGy5Q'></tfoot><dl id='bGy5Q'><fieldset id='bGy5Q'></fieldset></dl></div>
                <bdo id='bGy5Q'></bdo><ul id='bGy5Q'></ul>
                  <tfoot id='bGy5Q'></tfoot>

                1. 本文介绍了如何仅在内存中运行 Django 的测试数据库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我的 Django 单元测试需要很长时间才能运行,所以我正在寻找加快速度的方法.我正在考虑安装 SSD,但我知道这也有其缺点.当然,我可以用我的代码做一些事情,但我正在寻找结构修复.即使运行单个测试也很慢,因为每次都需要重建/南迁移数据库.所以这是我的想法...

                  My Django unit tests take a long time to run, so I'm looking for ways to speed that up. I'm considering installing an SSD, but I know that has its downsides too. Of course, there are things I could do with my code, but I'm looking for a structural fix. Even running a single test is slow since the database needs to be rebuilt / south migrated every time. So here's my idea...

                  既然我知道测试数据库总是很小,为什么我不能将系统配置为始终将整个测试数据库保存在 RAM 中?切勿触摸磁盘.我如何在 Django 中配置它?我更愿意继续使用 MySQL 因为那是我在生产中使用的,但是如果 SQLite 3 或其他使这变得容易的东西,我会那样做.

                  Since I know the test database will always be quite small, why can't I just configure the system to always keep the entire test database in RAM? Never touch the disk at all. How do I configure this in Django? I'd prefer to keep using MySQL since that's what I use in production, but if SQLite 3 or something else makes this easy, I'd go that way.

                  SQLite 或 MySQL 是否可以选择完全在内存中运行?应该可以配置一个 RAM 磁盘,然后配置测试数据库以将其数据存储在那里,但我不确定如何告诉 Django/MySQL 为某个数据库使用不同的数据目录,尤其是因为它不断被擦除并重新创建每次运行.(我使用的是 Mac FWIW.)

                  Does SQLite or MySQL have an option to run entirely in memory? It should be possible to configure a RAM disk and then configure the test database to store its data there, but I'm not sure how to tell Django / MySQL to use a different data directory for a certain database, especially since it keeps getting erased and recreated each run. (I'm on a Mac FWIW.)

                  推荐答案

                  如果在运行测试时将数据库引擎设置为 sqlite3,Django 将使用内存数据库.

                  If you set your database engine to sqlite3 when you run your tests, Django will use a in-memory database.

                  我在我的 settings.py 中使用这样的代码在运行我的测试时将引擎设置为 sqlite:

                  I'm using code like this in my settings.py to set the engine to sqlite when running my tests:

                  if 'test' in sys.argv:
                      DATABASE_ENGINE = 'sqlite3'
                  

                  或者在 Django 1.2 中:

                  Or in Django 1.2:

                  if 'test' in sys.argv:
                      DATABASES['default'] = {'ENGINE': 'sqlite3'}
                  

                  最后在 Django 1.3 和 1.4 中:

                  And finally in Django 1.3 and 1.4:

                  if 'test' in sys.argv:
                      DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}
                  

                  (在 Django 1.3 中,后端的完整路径并不是必需的,但可以使设置向前兼容.)

                  (The full path to the backend isn't strictly necessary with Django 1.3, but makes the setting forward compatible.)

                  您还可以添加以下行,以防您遇到南迁移问题:

                  You can also add the following line, in case you are having problems with South migrations:

                      SOUTH_TESTS_MIGRATE = False
                  

                  这篇关于如何仅在内存中运行 Django 的测试数据库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:MySQL 是否有命名约定? 下一篇:mysql - 如何在MySQL中使用自动增量字段复制一行并插入同一个表中?

                  相关文章

                    1. <tfoot id='gA5EE'></tfoot>
                        <bdo id='gA5EE'></bdo><ul id='gA5EE'></ul>

                    2. <i id='gA5EE'><tr id='gA5EE'><dt id='gA5EE'><q id='gA5EE'><span id='gA5EE'><b id='gA5EE'><form id='gA5EE'><ins id='gA5EE'></ins><ul id='gA5EE'></ul><sub id='gA5EE'></sub></form><legend id='gA5EE'></legend><bdo id='gA5EE'><pre id='gA5EE'><center id='gA5EE'></center></pre></bdo></b><th id='gA5EE'></th></span></q></dt></tr></i><div id='gA5EE'><tfoot id='gA5EE'></tfoot><dl id='gA5EE'><fieldset id='gA5EE'></fieldset></dl></div>
                      <legend id='gA5EE'><style id='gA5EE'><dir id='gA5EE'><q id='gA5EE'></q></dir></style></legend>
                    3. <small id='gA5EE'></small><noframes id='gA5EE'>