1

我的本地环境和我的生产环境不再兼容。问题是我正在为实体、区域使用 ID 和键,其中一些键是硬编码的,我无法将它弄出来。

class City(db.Model):
  region = db.ReferenceProperty()
  name = db.StringProperty()

class Region(db.Model):
  name = db.StringProperty()
  countrycode = db.StringProperty()
  vieworder = db.IntegerProperty()
  areacode = db.IntegerProperty()
  areacodes = db.ListProperty(int)

使用上述似乎可行的模型在生产环境中填充了许多地区和城市。但是在制作插入时,我被迫在生产中对这些生成的 ID 进行硬编码,即

  <select onchange="cities(this);document.getElementById('area').display='';" name="region" id="region">
                                <option value="">«{% trans %}Choose region{% endtrans %}»</option>
                                <option value="4703187">

                     Andaman &amp; Nicobar Islands
                </option>
<option value="4694186">

                     Andhra Pradesh
                </option>
<option value="4699188">

                     Arunachal Pradesh
                </option>
<option value="4692186">

                     Assam
                </option>
<option value="4702186">

                     Bihar
                </option>
<option value="4698185">

                     Chandigarh
                </option>
<option value="4676188">

                     Chhattisgarh
                </option>
<option value="4691190">

                     Dadra &amp; Nagar Haveli
                </option>
<option value="4704183">

                     Daman &amp; Diu
                </option>
<option value="4699183">

                     Delhi
                </option>
<option value="4702187">

                     Goa
                </option>
<option value="4691189">

                     Gujarat
                </option>
<option value="4700186">

                     Haryana
                </option>
<option value="4703185">

                     Himachal Pradesh
                </option>
<option value="4694187">

                     Jammu &amp; Kashmir
                </option>
<option value="4699189">

                     Jharkhand
                </option>
<option value="4701185">

                     Karnataka
                </option>
<option value="4695189">

                     Kerala
                </option>
<option value="4700189">

                     Lakshadweep
                </option>
<option value="4697186">

                     Madhya Pradesh
                </option>
<option value="4694184">

                     Maharashtra
                </option>
<option value="4700187">

                     Manipur
                </option>
<option value="4703186">

                     Meghalaya
                </option>
<option value="4698184">

                     Mizoram
                </option>
<option value="4692187">

                     Nagaland
                </option>
<option value="4696185">

                     Orissa
                </option>
<option value="4676189">

                     Pondicherry
                </option>
<option value="4693185">

                     Punjab
                </option>
<option value="4701186">

                     Rajasthan
                </option>
<option value="4701187">

                     Sikkim
                </option>
<option value="4701188">

                     Tamil Nadu
                </option>
<option value="4697187">

                     Tripura
                </option>
<option value="4699190">

                     Uttaranchal
                </option>
<option value="4692188">

                     Uttar Pradesh
                </option>
<option value="4700188">

                     West Bengal
                </option>

                        </select>

我使用 WTForms 和一些特殊的增强功能,因此将所有硬编码的 ID 从系统中取出会很棘手,我可以做些什么来让本地环境再次工作,是否可以导入区域和城市从生产到本地,以便它们具有相同的 ID?如果是,怎么做?对于 ID 以类似于上述方式进行硬编码的类别,我也有这个问题。

4

1 回答 1

2

如果你有硬编码的值,那么根据定义,它们会被写在某个地方,那么为什么你不能在测试和生产服务器上使用相同的值列表呢?或者硬编码,你的意思是,存储在数据库中?

我认为您的问题可能真的是,如何从生产数据存储中导出数据存储,并将其加载到本地测试服务器中,在这种情况下,这个相关的 StackOverflow 问题应该会有所帮助:从 AppEngine 数据库导出到本地开发数据库?

于 2013-06-24T03:45:12.043 回答