我一直在研究一种方法,用于在多个设备(如iPad或Mac)之间同步存储在iPhone应用程序中的核心数据.在iOS上使用Core Data的同步框架并不多(如果有的话).但是,我一直在考虑以下概念:
我需要考虑什么花哨的东西吗?我查看了REST框架,例如ObjectiveResource,Core Resource和RestfulCoreData.当然,这些都与Ruby on Rails一起使用,我并不依赖它,但它是一个开始的地方.我对我的解决方案的主要要求是:
我考虑过一些挑战:
还有什么我在这里失踪的吗?我应该考虑哪些框架才能实现这一目标?
我需要在node.js函数中
result = execSync('node -v');
Run Code Online (Sandbox Code Playgroud)
将同步执行给定的命令行并返回该命令文本的所有stdout.
PS.同步是错误的.我知道.仅供个人使用.
UPDATE
现在我们有mgutz的解决方案,它给我们退出代码,但不是stdout!仍在等待更精确的答案.
UPDATE
mgutz更新了他的答案,解决方案在这里:)
另外,正如dgo.a所提到的,有独立模块exec-sync
更新2014-07-30
ShellJS lib到了.认为这是目前最好的选择.
更新2015-02-10
最后!NodeJS 0.12原生支持execSync.
见官方文档
我在Android Studio中调试Gradle问题并看到"运行gradle sync"的引用,但我不知道如何运行此命令.
如何从Android studio或Mac终端运行"Gradle sync"?
我想使用Vagrant为我的团队提供一个共同的开发环境.主机完全不同:
在VM内部我们想要运行Linux.
到目前为止,一切都很好.
现在我们的想法是每个开发人员都应该能够使用他们选择的IDE,因此我们引入了一个同步文件夹,该文件夹共享主机和VM之间的源代码.这基本上也适用......除了符号链接.
在我们的源代码中,我们实际上有一些符号链接,这在VM内部的Linux中不是问题,但在Windows上作为主机,这会导致问题.我们唯一不能做的就是摆脱符号链接,所以我们需要另一种方法来解决这个问题.
到目前为止,我们尝试了许多选择:
symlink has no referent(每个符号链接有一个错误).我无法想象我们是这个星球上唯一或第一个遇到共享文件夹中的多平台主机和符号链接问题的人.
你如何解决这个问题,以便我们可以保持符号链接,但仍然使用不同的主机操作系统?
我有一个文件夹a /和一个远程文件夹A /.我现在在Makefile上运行这样的东西:
get-music:
rsync -avzru server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
Run Code Online (Sandbox Code Playgroud)
当我制作同步音乐时,它首先获取从服务器到本地的所有差异然后相反,将所有差异从本地发送到服务器.
只有在将来只有更新或新文件时,这才能很好地工作.如果有删除,它什么都不做.
在rsync中有--delete和--delete-after选项来帮助实现我想要的东西但事情是,它不适用于双向同步.
如果我想删除syn上的服务器文件,当本地文件被删除时,它可以工作,但如果由于某种原因(后面解释)我有一些不在服务器但在本地存在并且被删除的文件,我想在本地删除它们而不是服务器复制(当它发生).
事情是我在上下文中有3台机器:
因此,有时,服务器将具有使用笔记本同步删除的文件,例如然后,当我与我的桌面运行同步时(删除的服务器文件仍然存在)我希望删除这些文件而不是再次复制到服务器.
我想这只能用于数据库和操作跟踪:P
更简单的解决方案?谢谢.
官方Laravel文档具有以下sync()功能:
$user->roles()->sync( array( 1, 2, 3 ) );
Run Code Online (Sandbox Code Playgroud)
您还可以将其他数据透视表值与给定ID相关联:
$user->roles()->sync( array( 1 => array( 'expires' => true ) ) );
Run Code Online (Sandbox Code Playgroud)
在后一示例中,仅添加了一个枢轴行.我不明白的是,如果要同步多行,如何关联其他数据透视表记录?
提前致谢.
我有一个庞大的MySQL数据库,让我们调用它live_db,我想在同一台机器上复制它以提供一个测试系统来玩(test_db),包括表结构和数据.我定期更新test_db内容live_db; 如果可能的增量.
MySQL中是否有一些内置机制可以做到这一点?我认为主从复制不是我想要的东西,因为它应该可以改变数据test_db.但是,不必保留这些更改.
问候,
CGD
我想使用Dropbox在多台机器上同步Sublime Text 3的设置.
我该如何设置?
我需要从我的应用程序通过云获取一些数据.我在RESTful安卓应用上观看了谷歌IO视频@ http://www.youtube.com/watch?v=xHXn3Kg2IQE&t=43m58s它建议在最终幻灯片中使用SyncAdapter与Android系统集成.
后来我了解到必须使用帐户来实现SyncAdapter.我的应用不使用帐户.用户无需注册即可自由下载数据.我还可以使用SyncAdapter吗?我可以使用股票虚拟账户吗?
编辑:我的应用程序有一个内容提供商,所以这不是问题
编辑2:我刚看了设置 - >帐户和同步下的天气和股票应用程序.您可以看到它们允许同步,但没有删除帐户按钮.另一方面,谷歌,Facebook和Skype应用程序允许同步PLUS他们有一个删除帐户按钮.这意味着天气和股票不使用账户,而谷歌,Facebook和Skype都这样做.
我找到的教程@ http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-with-android-syncadapter/和@ http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1 /说必须有一个帐户才能使用同步适配器.:S ???
昨天我打开Android Studio,它要求我更新.我现在已经完全安装了v0.5.3,SDK 19和gradle 0.9.+.我认为这些信息是正确的,但我不完全清楚gradle策略是如何工作的.
问题是我的gradle应用程序停止了同步,即使我创建了一个全新的项目,它也不会同步.以下是详细信息:
Project的build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
Run Code Online (Sandbox Code Playgroud)
App的build.gradle:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile fileTree(dir: 'libs', include: …Run Code Online (Sandbox Code Playgroud) sync ×10
android ×3
rsync ×2
account ×1
adapter ×1
build.gradle ×1
command ×1
core-data ×1
database ×1
dropbox ×1
eloquent ×1
exec ×1
file ×1
gradle ×1
ios ×1
iphone ×1
javascript ×1
laravel ×1
macos ×1
mysql ×1
node.js ×1
php ×1
pivot ×1
replicate ×1
rest ×1
sdk ×1
settings ×1
sublimetext3 ×1
two-way ×1
vagrant ×1
vagrantfile ×1