appmaker数据:连接到多个Cloud SQL数据库

时间:2017-08-17 16:29:09

标签: google-app-maker

是否可以将一个应用程序连接到多个云SQL数据库?

我可以在应用程序设置(projectName:regionName:instanceName / databaseName)中连接到单个云SQL数据库。

但我想将多个现有Cloud SQL数据库中的模型添加到我的单个App中。

创建外部数据模型时,没有选项或设置来配置其他/附加的Google云端SQL数据库。

任何建议都表示赞赏,如果有办法解决这个问题?

参考:将您的应用连接到现有的Google Cloud SQL数据库: https://developers.google.com/appmaker/models/cloudsql#connect_your_app_to_an_existing_google_cloud_sql_database

约翰

1 个答案:

答案 0 :(得分:1)

试过这个:

App Maker服务器脚本可以访问Google Service API。 JDBC类允许您在添加10个列入白名单的IP后连接到Cloud SQL。

发件人:https://developers.google.com/apps-script/guides/jdbc将以下IP添加到云端控制台中的访问控制中:

64.18.0.0/20
64.233.160.0/19
66.102.0.0/20
66.249.80.0/20
72.14.192.0/18
74.125.0.0/16
173.194.0.0/16
207.126.144.0/20
209.85.128.0/17
216.239.32.0/19

我把这个位放在服务器脚本中并将其附加到一个按钮并检查输出日志并发现它有效。

  function Connect() {
  var address = 'instance_ip'; 
  var user = 'username';
  var pw = 'password';
  var db = 'database_name'; 

  var dbUrl = 'jdbc:mysql://' + address + '/' + db; 

// read some rows
function readFrom() {
  var conn = Jdbc.getConnection(dbUrl, user, pw); 

  var start = new Date(); 
  var stmt = conn.createStatement();

  stmt.setMaxRows(100); 
  var results = stmt.executeQuery('SELECT * FROM table_name'); 
  var numCols = results.getMetaData().getColumnCount(); 

  while (results.next()) {
    var rowString = ''; 
    for(var col = 0; col < numCols; col++) {
      rowString += results.getString(col + 1) + '\t';  
    }
    console.log(rowString);
  }

  results.close();
  stmt.close();
}

readFrom();
}

使用此功能,您可以拥有任意数量的连接。但这不允许App Maker将其识别为数据源。在官方支持此功能之前,您必须手动处理结果。 (我喜欢这个想法,并会为此制作一个回购库。)