Postgres 8.4及更高版本的数据库包含public模式中的模式和公司特定表中的公用表company.
company模式名称始终'company'以公司编号开头并以公司编号结束.
所以可能有以下模式:
public
company1
company2
company3
...
companynn
Run Code Online (Sandbox Code Playgroud)
应用程序始终适用于单个公司.
的search_path相应指定在ODBC或连接Npgsql的字符串,如:
search_path='company3,public'
Run Code Online (Sandbox Code Playgroud)
如何检查给定表是否存在于指定的companyn模式中?
例如:
select isSpecific('company3','tablenotincompany3schema')
Run Code Online (Sandbox Code Playgroud)
应该返回false,并
select isSpecific('company3','tableincompany3schema')
Run Code Online (Sandbox Code Playgroud)
应该回来true.
在任何情况下,该函数应仅检查companyn传递的模式,而不检查其他模式.
如果两者public和传递的模式中都存在给定的表,则该函数应该返回true.
它适用于Postgres 8.4或更高版本.
是否可以定义默认情况下创建新表的模式?(由"不合格的表名称"引用.)
我已经看到了在Postgres中使用"搜索路径"的一些细节,但我认为它只在检索数据时有效,而不是创建.
我有一堆SQL脚本,它们创建了许多表.我没有修改脚本,而是希望默认情况下在特定模式中设置数据库创建表 - 当它们具有非限定名称时.
这可能吗?
我将我的Xcode更新为5.0.我添加了一些库/框架搜索路径,它显示的路径是绝对路径.例如,如果我的文件夹在我的桌面上,它将显示/ Users/username/Desktop /"foldername"/"subfolder"/"subfolder"/"framework".因此,每当我在另一个mac中检出一个工作副本时,我必须删除对某些库/框架的引用并重新添加它们.是否有办法修复它,我不需要删除 - 添加再次参考?
我的Xcode项目使用两个目标构建到同一产品的变体.两者之间的区别仅在于使用了哪个版本的库.对于.c源文件,使用目标复选框可以很容易地将正确的版本分配给正确的目标.但是,包括头文件始终包含相同的头文件.这对于一个目标是正确的,但对另一个目标则是错误的.
有没有办法控制每个目标包含哪个头文件?
这是我的项目文件层次结构(在Xcode中复制):
MyProject
TheirOldLib
theirLib.h
theirLib.cpp
TheirNewLib
theirLib.h
theirLib.cpp
myCode.cpp
Run Code Online (Sandbox Code Playgroud)
和myCode.cpp做的事情如下:
#include "theirLib.h"
…
somecode()
{
#if OLDVERSION
theirOldLibCall(…);
#else
theirNewLibCall(…);
#endif
}
Run Code Online (Sandbox Code Playgroud)
当然,我OLDVERSION为一个目标而不是另一个目标定义.
注意#include必须如图所示.以下两个都失败,找不到文件错误:
#include "TheirOldLib/theirLib.h"
#include "TheirNewLib/theirLib.h"
Run Code Online (Sandbox Code Playgroud)
那么有没有办法告诉Xcode哪个theirLib.h包含每个目标?
约束:
- 两个头文件具有相同的名称.作为最后的手段,我可以重命名其中一个,但我宁愿避免这样做,因为这将导致其他平台上的主要头发.
- 必须更改#include添加对封闭文件夹的引用也是我宁愿避免的,因为我需要使用条件编译指令执行两次.
- 我可以自由地调整我的项目,因为我认为合适
谢谢你的帮助.
我应该调整FRAMEWORK_SEARCH_PATHS还是HEADER_SEARCH_PATHS在向项目添加自定义框架时?
我将MainProject.xcodeproject这些链接SomeFramework.framework简单地从"产品"拖到SomeFramework.xcodeproject主项目中的"与二进制库链接"构建阶段.
Framework包含其Headers目录中的所有必需标头.但是,在我的项目中,我不能简单地使用:
#import <SomeFramework.h> // I'm pretty sure this file exists
Run Code Online (Sandbox Code Playgroud)
包括此标题.构建失败"没有这样的文件或目录".编译器标志包括-F…/SomeFramework/build/Release,该目录包含带有Headers目录符号链接的框架.
(顺便说一句:这适用于Mac OS X.我不关心iPhone.)
我在RedHat上使用PostgreSQL 9.0.3.该数据库包含两个模式,public和wh.我创建了一个名为的新角色django.我希望此用户使用wh架构,因为它是默认的.
按照手册,我做了:
ALTER USER django SET SEARCH_PATH TO wh, public;
Run Code Online (Sandbox Code Playgroud)
这似乎有效:
SHOW SEARCH_PATH;
search_path
-------------
wh, public
Run Code Online (Sandbox Code Playgroud)
但是,如果我然后执行a \dt,则仅显示公共模式中的表.在手册中,更改搜索路径应立即生效,我应该能够访问wh没有前缀的表,但事实并非如此.登录和注销会保留更改,search_path但不会显示任何行为更改.
我错过了什么?
我的Yii2是用PostgreSQL设置的.我不喜欢每个项目使用单独的数据库,而是喜欢为每个项目使用模式.稍后设置的问题是我无法弄清楚如何通过配置选择默认模式"defaultSchema".
我遇到迁移表的问题,因为我在运行迁移命令时默认为"公共"模式.默认的"public"架构也会阻止使用数据库用户的search_path.虽然我使用"search_path = myschema,public"设置我的db用户但是我仍然无法在没有其他配置的情况下使用迁移,因为在运行时Yii在表名中查找模式,如果没有提供,则回退到defaultSchema,所以无论如何你在数据库用户的search_path中拥有的内容仍将使用"public.migrations".
在Yii2中设置默认架构的最佳方法是什么?是否有为模式选择指定的配置参数?毕竟每个连接都将使用一个模式,最好通过连接配置进行设置.
当我加载包debug来调试带有zoo对象的脚本时,我遇到了麻烦:函数index来自zoo被debug包掩盖.我该怎么解开index?一般来说,如何处理这些名称冲突问题?我们只是不使用debug"动物园"包?
我对MATLAB搜索路径有一些疑问:
当前目录位于搜索路径上,但为什么它不在"path"的输出中?我在哪里可以找到完整的搜索路径?
添加搜索路径的所有可能方法是什么?
考虑添加搜索路径的所有可能方法(例如pathdef.m,startup.m,MATLABPATH env变量等),添加的搜索路径的顺序是什么?我认为这很重要,因为当不同搜索路径中存在同名文件时,将选择顶部的文件.
我正在开发一个应用程序,我决定使用UUID作为主键和外键.为此,我使用了扩展名"uuid-ossp",它在开发环境中运行良好.
现在,我正在安装测试环境.数据库设置由客户制作的脚本强加.结构是标准的:admin用户,应用程序用户,应用程序命名空间等.
我可以使用admin帐户创建扩展程序:
$ psql mydb -U [admin_user]
mydb=# CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION
mydb=# select uuid_generate_v4();
uuid_generate_v4
--------------------------------------
23e45b57-a658-41a5-8661-0cc06568eff8
Run Code Online (Sandbox Code Playgroud)
但是当我与数据库应用程序用户连接时,我无法生成一个uuid:
$ psql mydb -U [app_user]
SELECT uuid_generate_v4();
mydb=> select uuid_generate_v4();
ERROR: function uuid_generate_v4() does not exist
Run Code Online (Sandbox Code Playgroud)
admin_user和app_user都在同一个数据库中.app_user可以"查看"扩展程序但不能使用它:
bdd3001=> select * from pg_catalog.pg_extension;
extname | [...]
-----------+-
plpgsql | [...]
uuid-ossp | [...]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
search-path ×10
postgresql ×5
xcode ×3
frameworks ×2
include ×2
database ×1
directory ×1
header ×1
ios ×1
matlab ×1
migration ×1
package ×1
path ×1
privileges ×1
r ×1
schema ×1
sql ×1
xcode5 ×1
yii2 ×1