小编ste*_*ldo的帖子

在提交会话之前获取插入密钥

class Parent(db.Model):
    id = db.Column(db.Integer, primary_key=True)

class Child(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))

parent = Parent()
db.session.add(parent)

child = Child()
child.parent_id = parent.id
db.session.add(child)

db.session.commit()
Run Code Online (Sandbox Code Playgroud)

我想INSERT到两个parentchild表考虑到一个会话中parent_id必须包含在该child表中.在我创建child对象的那一刻,parent.idNone.

我怎样才能做到这一点?

python sqlalchemy flask flask-sqlalchemy

24
推荐指数
1
解决办法
1万
查看次数

多个节点池与单个池,包含许多计算机和大型计算机

我们将所有基础设施迁移到Google Kubernetes Engine(GKE) - 我们目前拥有50多台具有大量API,服务,Web应用程序,数据库服务器等的AWS机器.

由于我们已经将所有东西都停靠,现在是时候开始将所有东西都移到GKE了.

我有一个问题可能听起来太基本,但我已经在网上搜索了一个星期,并没有找到任何合理的帖子

直截了当,以下哪种方法更好,为什么:

  1. 拥有多个机器类型的多个节点池,并始终指定应在哪个池中完成每个部署; 要么

  2. 拥有一个包含大量机器的单个池,让Kubernetes调度程序完成工作,而不必担心我的部署将在何处完成; 要么

  3. 拥有BIG机器(在多个区域中提高集群的可用性和弹性)并让Kubernetes在那里部署所有内容.

google-cloud-platform kubernetes google-kubernetes-engine

9
推荐指数
2
解决办法
2012
查看次数

获得大于零的最小值

我有下表:

column1   column2   column3
   3         2         0
   5         9         2
   1         4         6
Run Code Online (Sandbox Code Playgroud)

当我运行以下代码时:

SELECT
  id_function = @param,
  MIN(t1.column1) AS c1min, 
  MAX(t1.column2) AS c2max,
  MIN(t1.column3) AS c3min
FROM
  table1 (NOLOCK) AS t1
WHERE
  t1.id = @param
Run Code Online (Sandbox Code Playgroud)

我明白了:

c1min   c2max   c3min
  1       9       0
Run Code Online (Sandbox Code Playgroud)

我的问题是c3min必须是大于零的最小值.我需要的结果应该是:

c1min   c2max   c3min
  1       9       2
Run Code Online (Sandbox Code Playgroud)

没有使用subselect有没有办法做到这一点?任何帮助将不胜感激.

谢谢!

t-sql sql-server

8
推荐指数
2
解决办法
9764
查看次数

按照插入的确切顺序返回行

我有一个简单的连接表,在SQL Server中有两个id列.有没有办法按照插入的确切顺序选择所有行?

如果我尝试创建SELECT*,即使我没有指定ORDER BY子句,也不会按插入顺序返回行,而是按第一个键列排序.

我知道这是一个奇怪的问题,但这个表非常大,我需要确切地检查一个奇怪的行为何时开始,不幸的是我的表中没有时间戳列.

更新#1

我将尝试解释为什么我说当没有ORDER BY子句的SELECT*FROM表时,行不会以'自然'顺序返回.

我的桌子是这样的:

id1     id2
---------------
  1       1
  2       2
  3       3
  4       4
  5       5
  5       6

... and so on, with about 90.000+ rows
Run Code Online (Sandbox Code Playgroud)

现在,我不知道为什么(可能是一个软件错误插入这些行),但我的表有450万行,看起来像这样:

id1     id2
---------------
1       1
1       35986
1       44775
1       60816
1       62998
1       67514
1       67517
1       67701
1       67837
...
1       75657 (100+ "strange" rows)

2       2
2       35986
2       44775
2       60816
2       62998
2       67514
2       67517
2       67701
2       67837
...
2 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

6
推荐指数
3
解决办法
2万
查看次数

ElasticSearch Scripting:检查数组是否包含值

假设我创建了一个这样的文档:

PUT idx/type/1
{
   "the_field": [1,2,3]
}
Run Code Online (Sandbox Code Playgroud)

我可以使用GET/idx/type/1检索我的文档:

{
   "_index": "idx",
   "_type": "type",
   "_id": "1",
   "_version": 1,
   "found": true,
   "_source": {
      "the_field": [
         1,
         2,
         3
      ]
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想检查字段"the_field"是否包含值2.我知道我可以使用term子句,但我需要使用过滤器脚本来检查这个,所以我试过:

POST /idx/typ/_search
{
    "query": {
        "match_all": {}
    }, 
    "filter": {
        "script": {
           "script": "doc['the_field'].values.contains(2)"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并没有得到任何结果:

{
   "took": 6,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 0,
      "max_score": null,
      "hits": []
   }
}
Run Code Online (Sandbox Code Playgroud)

要测试我的mevl脚本语法是否正确,我尝试这样做:

POST /idx/type/_search
{
    "query": {
        "match_all": {} …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

5
推荐指数
1
解决办法
9939
查看次数

使用关联对象模式的 SQLAlchemy 惰性 = 动态与 m2m 关系

users我和表之间有一个简单的 m2m 关系roles

users_roles = db.Table('users_roles',
    db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('role_id', db.Integer, db.ForeignKey('roles.id')),
    db.Column('is_primary', db.Boolean)
)

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column('id', db.Integer, primary_key=True)
    roles = db.relationship('Role', secondary=users_roles, lazy='dynamic', backref=db.backref('users', lazy='dynamic'))

class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column('id', db.Integer, primary_key=True)
    users = db.relationship('User', secondary=users_roles, lazy='dynamic', backref=db.backref('roles', lazy='dynamic'))
Run Code Online (Sandbox Code Playgroud)

要将记录添加到users_roles表中,我必须执行以下操作:

role = Role.get(1)
user = User()
user.roles.append(role)
db.session.add(user)
db.session.commit()
Run Code Online (Sandbox Code Playgroud)

没关系,但我is_primaryusers_roles表中有一列也应该填充。

我更改了代码以使用关联对象模式,如 SQLAlchemy 文档中所述。

现在我的代码如下所示:

class User(db.Model):
    __tablename__ = 'users' …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy

5
推荐指数
1
解决办法
2568
查看次数

获取特定地址组件的 place_id

var autocomplete;

function initialize() {
    autocomplete = new google.maps.places.Autocomplete(
        (document.getElementById('autocomplete')), {
            types: ['address']
        });
    google.maps.event.addListener(autocomplete, 'place_changed', function() {
        fillInAddress();
    });
}

function fillInAddress() {
    var place = autocomplete.getPlace();
    /* need to get the neighborhood place_id here */
}
Run Code Online (Sandbox Code Playgroud)

我的place对象是一个完整的地址,我需要的是place_id这个地址的特定组成部分:neighborhood.

我尝试使用latlng我的place对象的进行反向地理编码并通过neighborhoodhttps://maps.googleapis.com/maps/api/geocode/json?latlng=xxx,yyy&result_type=neighborhood)过滤,但它返回多个结果和最终多个(和不正确的)社区。

反正有没有得到place_id邻里的?

google-maps google-maps-api-3 google-places-api

5
推荐指数
1
解决办法
1921
查看次数

在YAML中重复节点值

pagination:
    limit:
        default: 10
        min: 0
        max: 50
        current: default
Run Code Online (Sandbox Code Playgroud)

current节点应具有与该节点相同的值default?(在这种情况下为10)。使用YAML是否可以做到这一点?

yaml

5
推荐指数
1
解决办法
1991
查看次数

从Interactive Console运行代码时无法访问db

# main.py

from flask import Flask, jsonify
from flask.ext.cors import CORS
from shared.database import db
from src import controllers
import os

app = Flask(__name__)
cors = CORS(app, allow_headers='Content-Type')

app.register_blueprint(controllers.api)

if (os.getenv('SERVER_SOFTWARE') and os.getenv('SERVER_SOFTWARE').startswith('Google App Engine/')):
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+gaerdbms:///gaiapro_api_dev?instance=dev-gaiapro-api:gaiapro-sql'
else:
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqldb://root@127.0.0.1/gaiapro_api_dev'
    app.config['DEBUG'] = True

db.init_app(app)

# shared/database.py

from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()

# src/controllers/__init__.py

from flask import Blueprint, jsonify, request
from src import models
from src import views
from shared.helpers import *

api = Blueprint('api', __name__)

@api.route('/test') …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine sqlalchemy flask flask-sqlalchemy

4
推荐指数
1
解决办法
1418
查看次数

Sidekiq 超时

当用户从一个特定页面移动到另一个页面时,我在 Rails 应用程序中使用sidekiq异步执行SQL Server数据库中的存储过程。

问题是存储过程最多需要 4 分钟才能完成,sidekiq返回超时消息(然后重试)。

我不想在database.yml 中更改我的应用程序的全局数据库超时设置(我什至不知道它是否会解决,但我不能这样做)。

有什么方法可以告诉sidekiq我的方法可能需要很长时间然后停止出现超时错误?

我真的很感激任何帮助。

更新 #1

2013-06-03T17:14:18Z 6136 TID-1ac4ik GeneratePropertyProfile JID-de571df94f21b9159c74db6b 信息:开始

2013-06-03T17:19:03Z 6136 TID-1ac4ik GeneratePropertyProfile JID-de571df94f21b9159c74db6b 信息:失败:285.218 秒

2013-06-03T17:19:03Z 6136 TID-1ac4ik 警告:{"retry"=>true,"queue"=>"default","class"=>"GeneratePropertyProfile","args"=>[{"id "=>41915658}], "jid"=>"de571df94f21b9159c74db6b", "error_message"=>"TinyTds::Error: Adaptive Server 连接超时: EXEC gaiainc.sp_wait", "error_class"=>"ActiveRecord::StatementInvalid" , "failed_at"=>2013-06-03 17:19:03 UTC, "retry_count"=>0}

2013-06-03T17:19:03Z 6136 TID-1ac4ik 警告:TinyTds::Error:Adaptive Server 连接超时:EXEC gaiainc.sp_wait

更新 #2

我让它在不改变我的database.yml 的情况下工作。但是,我必须在我的 initializers/sidekiq.rb 中添加以下代码:

Sidekiq.configure_server do |config|
  ActiveRecord::Base.connection.disconnect!
  ActiveRecord::Base.configurations[Rails.env]['timeout'] = 300000
  ActiveRecord::Base.establish_connection
end
Run Code Online (Sandbox Code Playgroud)

我知道这是一个丑陋的解决方案,但我没有时间找到另一个解决方案来使其工作。如果有人有更干净的解决方案,请回复此主题。

谢谢!

ruby-on-rails sidekiq

3
推荐指数
1
解决办法
6990
查看次数