如何协调当地开发环境与生产?

时间:2013-06-24 03:11:42

标签: google-app-engine python-2.7 jinja2 webapp2 wtforms

我的本​​地环境和我的制作环境不再兼容了。问题是我正在为一个实体,区域使用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以与上述类似的方式进行硬编码的类别,我也遇到此问题。

1 个答案:

答案 0 :(得分:2)

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

我认为你的问题可能真的是,如何从生产数据存储区导出数据存储区,并将其加载到本地测试服务器中,在这种情况下,这个相关的StackOverflow问题应该有所帮助:Export from AppEngine database to the local development database?